admin: Refactor task destination planning (#7063)
* refactor planning into task detection * refactoring worker tasks * refactor * compiles, but only balance task is registered * compiles, but has nil exception * avoid nil logger * add back ec task * setting ec log directory * implement balance and vacuum tasks * EC tasks will no longer fail with "file not found" errors * Use ReceiveFile API to send locally generated shards * distributing shard files and ecx,ecj,vif files * generate .ecx files correctly * do not mount all possible EC shards (0-13) on every destination * use constants * delete all replicas * rename files * pass in volume size to tasks
This commit is contained in:
@@ -26,14 +26,14 @@ type TaskDefinition struct {
|
||||
ConfigSpec ConfigSpec
|
||||
|
||||
// Task creation
|
||||
CreateTask func(params types.TaskParams) (types.TaskInterface, error)
|
||||
CreateTask func(params *worker_pb.TaskParams) (types.Task, error)
|
||||
|
||||
// Detection logic
|
||||
DetectionFunc func(metrics []*types.VolumeHealthMetrics, info *types.ClusterInfo, config TaskConfig) ([]*types.TaskDetectionResult, error)
|
||||
ScanInterval time.Duration
|
||||
|
||||
// Scheduling logic
|
||||
SchedulingFunc func(task *types.Task, running []*types.Task, workers []*types.Worker, config TaskConfig) bool
|
||||
SchedulingFunc func(task *types.TaskInput, running []*types.TaskInput, workers []*types.WorkerData, config TaskConfig) bool
|
||||
MaxConcurrent int
|
||||
RepeatInterval time.Duration
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user