Skip to content
This repository has been archived by the owner on Jun 23, 2022. It is now read-only.

refactor(split): add app splitting() function #767

Merged
merged 2 commits into from
Feb 26, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/meta/meta_data.h
Original file line number Diff line number Diff line change
Expand Up @@ -359,6 +359,7 @@ class app_state : public app_info
dsn::blob result = dsn::json::json_forwarder<app_info>::encode(another);
return result;
}
bool splitting() const { return helpers->split_states.splitting_count > 0; }
};

typedef std::set<dsn::gpid> partition_set;
Expand Down
6 changes: 3 additions & 3 deletions src/meta/meta_split_service.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ void meta_split_service::start_partition_split(start_split_rpc rpc)
return;
}

if (app->helpers->split_states.splitting_count > 0) {
if (app->splitting()) {
response.err = ERR_BUSY;
auto err_msg =
fmt::format("app({}) is already executing partition split", request.app_name);
Expand Down Expand Up @@ -318,7 +318,7 @@ void meta_split_service::query_partition_split(query_split_rpc rpc) const
return;
}

if (app->helpers->split_states.splitting_count <= 0) {
if (!app->splitting()) {
response.err = ERR_INVALID_STATE;
response.__set_hint_msg(fmt::format("app({}) is not splitting", app_name));
derror_f("query partition split failed, {}", response.hint_msg);
Expand Down Expand Up @@ -349,7 +349,7 @@ void meta_split_service::control_partition_split(control_split_rpc rpc)
return;
}

if (app->helpers->split_states.splitting_count <= 0) {
if (!app->splitting()) {
response.err = ERR_INVALID_STATE;
response.__set_hint_msg(fmt::format("app({}) is not splitting", req.app_name));
derror_f("{} split failed, {}", control_type_str(control_type), response.hint_msg);
Expand Down
2 changes: 1 addition & 1 deletion src/meta/server_state.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -791,7 +791,7 @@ void server_state::on_config_sync(configuration_query_by_node_rpc rpc)
response.partitions[i].host_node = request.node;
// set meta_split_status
const split_state &app_split_states = app->helpers->split_states;
if (app_split_states.splitting_count > 0) {
if (app->splitting()) {
auto iter = app_split_states.status.find(pid.get_partition_index());
if (iter != app_split_states.status.end()) {
response.partitions[i].__set_meta_split_status(iter->second);
Expand Down