From 7fdffc0340e4de241cb5f65a842a2f1a7c03d585 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Magiera?= Date: Thu, 27 Aug 2020 23:28:52 +0200 Subject: [PATCH] sealing sched: Give more priority to tasks (re)moving data --- extern/sector-storage/request_queue.go | 5 +++++ extern/sector-storage/sealtasks/task.go | 24 +++++++++++++++--------- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/extern/sector-storage/request_queue.go b/extern/sector-storage/request_queue.go index 85d3abf46..9247ce24a 100644 --- a/extern/sector-storage/request_queue.go +++ b/extern/sector-storage/request_queue.go @@ -7,6 +7,11 @@ type requestQueue []*workerRequest func (q requestQueue) Len() int { return len(q) } func (q requestQueue) Less(i, j int) bool { + oneMuchLess, muchLess := q[i].taskType.MuchLess(q[j].taskType) + if oneMuchLess { + return muchLess + } + if q[i].priority != q[j].priority { return q[i].priority > q[j].priority } diff --git a/extern/sector-storage/sealtasks/task.go b/extern/sector-storage/sealtasks/task.go index ad5ce01bb..4174373a6 100644 --- a/extern/sector-storage/sealtasks/task.go +++ b/extern/sector-storage/sealtasks/task.go @@ -17,15 +17,15 @@ const ( ) var order = map[TaskType]int{ - TTAddPiece: 7, - TTPreCommit1: 6, - TTPreCommit2: 5, - TTCommit2: 4, - TTCommit1: 3, - TTFetch: 2, - TTFinalize: 1, - TTUnseal: 0, - TTReadUnsealed: 0, + TTAddPiece: 6, // least priority + TTPreCommit1: 5, + TTPreCommit2: 4, + TTCommit2: 3, + TTCommit1: 2, + TTUnseal: 1, + TTFetch: -1, + TTReadUnsealed: -1, + TTFinalize: -2, // most priority } var shortNames = map[TaskType]string{ @@ -43,6 +43,12 @@ var shortNames = map[TaskType]string{ TTReadUnsealed: "RD ", } +func (a TaskType) MuchLess(b TaskType) (bool, bool) { + oa, ob := order[a], order[b] + oneNegative := oa^ob < 0 + return oneNegative, oa < ob +} + func (a TaskType) Less(b TaskType) bool { return order[a] < order[b] }