mirror of
https://gitee.com/milvus-io/milvus.git
synced 2026-01-07 19:31:51 +08:00
MS-374 Add action definition
Former-commit-id: d3ed4be48d8c27f380b9d20d7eb1bff6abe7cee0
This commit is contained in:
parent
a591e965c9
commit
ac230a7ec3
@ -25,6 +25,7 @@ Please mark all change in change log and use the ticket from JIRA.
|
||||
- MS-368 - Implement cost.cpp
|
||||
- MS-371 - Add TaskTableUpdatedEvent
|
||||
- MS-373 - Add resource test
|
||||
- MS-374 - Add action definition
|
||||
|
||||
## New Feature
|
||||
- MS-343 - Implement ResourceMgr
|
||||
|
||||
34
cpp/src/scheduler/action/Action.h
Normal file
34
cpp/src/scheduler/action/Action.h
Normal file
@ -0,0 +1,34 @@
|
||||
/*******************************************************************************
|
||||
* copyright 上海赜睿信息科技有限公司(zilliz) - all rights reserved
|
||||
* unauthorized copying of this file, via any medium is strictly prohibited.
|
||||
* proprietary and confidential.
|
||||
******************************************************************************/
|
||||
#pragma once
|
||||
|
||||
#include "../resource/Resource.h"
|
||||
|
||||
|
||||
namespace zilliz {
|
||||
namespace milvus {
|
||||
namespace engine {
|
||||
|
||||
class Action {
|
||||
public:
|
||||
/*
|
||||
* Push task to neighbour;
|
||||
*/
|
||||
static void
|
||||
PushTaskToNeighbour(const ResourceWPtr &self);
|
||||
|
||||
|
||||
/*
|
||||
* Pull task From neighbour;
|
||||
*/
|
||||
static void
|
||||
PullTaskFromNeighbour(const ResourceWPtr &self);
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
24
cpp/src/scheduler/action/PullTaskFromNeighbour.cpp
Normal file
24
cpp/src/scheduler/action/PullTaskFromNeighbour.cpp
Normal file
@ -0,0 +1,24 @@
|
||||
/*******************************************************************************
|
||||
* Copyright 上海赜睿信息科技有限公司(Zilliz) - All Rights Reserved
|
||||
* Unauthorized copying of this file, via any medium is strictly prohibited.
|
||||
* Proprietary and confidential.
|
||||
******************************************************************************/
|
||||
|
||||
#include "Action.h"
|
||||
|
||||
|
||||
namespace zilliz {
|
||||
namespace milvus {
|
||||
namespace engine {
|
||||
|
||||
void
|
||||
Action::PullTaskFromNeighbour(const ResourceWPtr &self) {
|
||||
// TODO: implement
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
49
cpp/src/scheduler/action/PushTaskToNeighbour.cpp
Normal file
49
cpp/src/scheduler/action/PushTaskToNeighbour.cpp
Normal file
@ -0,0 +1,49 @@
|
||||
/*******************************************************************************
|
||||
* Copyright 上海赜睿信息科技有限公司(Zilliz) - All Rights Reserved
|
||||
* Unauthorized copying of this file, via any medium is strictly prohibited.
|
||||
* Proprietary and confidential.
|
||||
******************************************************************************/
|
||||
|
||||
#include "Action.h"
|
||||
|
||||
|
||||
namespace zilliz {
|
||||
namespace milvus {
|
||||
namespace engine {
|
||||
|
||||
void
|
||||
push_task(ResourcePtr &self, ResourcePtr &other) {
|
||||
auto self_task_table = self->task_table();
|
||||
auto other_task_table = other->task_table();
|
||||
if (!other_task_table.Empty()) {
|
||||
CacheMgr cache;
|
||||
auto indexes = PickToMove(self_task_table, cache, 1);
|
||||
for (auto index : indexes) {
|
||||
if (self_task_table.Move(index)) {
|
||||
auto task = self_task_table.Get(index)->task;
|
||||
other_task_table.Put(task);
|
||||
// TODO: mark moved future
|
||||
other->WakeupLoader();
|
||||
other->WakeupExecutor();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
Action::PushTaskToNeighbour(const ResourceWPtr &res) {
|
||||
if (auto self = res.lock()) {
|
||||
for (auto &neighbour : self->GetNeighbours()) {
|
||||
if (auto n = neighbour.neighbour_node.lock()) {
|
||||
auto neighbour = std::static_pointer_cast<Resource>(n);
|
||||
push_task(self, neighbour);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user