acelyc111 commented on code in PR #1188:
URL: https://github.com/apache/incubator-pegasus/pull/1188#discussion_r997747183
##########
src/rdsn/src/meta/server_state.cpp:
##########
@@ -1267,6 +1267,85 @@ void server_state::drop_app(dsn::message_ex *msg)
}
}
+void server_state::do_app_rename(std::shared_ptr<app_state> &app, const
std::string &old_app_name)
+{
+ auto after_rename_app = [this, app, old_app_name](dsn::error_code ec)
mutable {
+ if (ERR_OK == ec) {
Review Comment:
refactor the code as:
```
if (ERR_TIMEOUT == ec) {
...
}
dcheck_eq(ERR_OK, ec);
...
```
##########
src/rdsn/src/meta/server_state.cpp:
##########
@@ -1267,6 +1267,85 @@ void server_state::drop_app(dsn::message_ex *msg)
}
}
+void server_state::do_app_rename(std::shared_ptr<app_state> &app, const
std::string &old_app_name)
+{
+ auto after_rename_app = [this, app, old_app_name](dsn::error_code ec)
mutable {
+ if (ERR_OK == ec) {
+ zauto_write_lock l(_lock);
+ _exist_apps.erase(old_app_name);
+
+ std::vector<dsn::rpc_address> replica_nodes;
+ for (auto &node : _nodes) {
+ if (node.second.alive()) {
+ replica_nodes.emplace(node.first);
+ }
+ }
+ dsn::error_code err = update_node_configuration(replica_nodes);
+ if (err != ERR_OK) {
+ derror("Failed to update replica_server configuration update
immediately, it wiil retry by replica_server selfly later.");
Review Comment:
```suggestion
derror("Failed to update replica_server configuration update
immediately, it will retry by replica_server selfly later.");
```
##########
src/rdsn/src/meta/server_state.cpp:
##########
@@ -1267,6 +1267,85 @@ void server_state::drop_app(dsn::message_ex *msg)
}
}
+void server_state::do_app_rename(std::shared_ptr<app_state> &app, const
std::string &old_app_name)
+{
+ auto after_rename_app = [this, app, old_app_name](dsn::error_code ec)
mutable {
+ if (ERR_OK == ec) {
+ zauto_write_lock l(_lock);
+ _exist_apps.erase(old_app_name);
+
+ std::vector<dsn::rpc_address> replica_nodes;
+ for (auto &node : _nodes) {
+ if (node.second.alive()) {
+ replica_nodes.emplace(node.first);
+ }
+ }
+ dsn::error_code err = update_node_configuration(replica_nodes);
+ if (err != ERR_OK) {
+ derror("Failed to update replica_server configuration update
immediately, it wiil retry by replica_server selfly later.");
+ }
+ } else if (ERR_TIMEOUT == ec) {
+ dinfo("rename app(%s) prepare timeout, continue to try later",
app->get_logname());
Review Comment:
use `dinfo_f`
##########
src/rdsn/src/meta/server_state.cpp:
##########
@@ -1267,6 +1267,85 @@ void server_state::drop_app(dsn::message_ex *msg)
}
}
+void server_state::do_app_rename(std::shared_ptr<app_state> &app, const
std::string &old_app_name)
+{
+ auto after_rename_app = [this, app, old_app_name](dsn::error_code ec)
mutable {
+ if (ERR_OK == ec) {
+ zauto_write_lock l(_lock);
+ _exist_apps.erase(old_app_name);
+
+ std::vector<dsn::rpc_address> replica_nodes;
+ for (auto &node : _nodes) {
+ if (node.second.alive()) {
+ replica_nodes.emplace(node.first);
+ }
+ }
+ dsn::error_code err = update_node_configuration(replica_nodes);
+ if (err != ERR_OK) {
+ derror("Failed to update replica_server configuration update
immediately, it wiil retry by replica_server selfly later.");
Review Comment:
I‘m not sure how does this retry mechanism work, could you please explain
about it?
##########
src/rdsn/src/meta/server_state.cpp:
##########
@@ -1267,6 +1267,85 @@ void server_state::drop_app(dsn::message_ex *msg)
}
}
+void server_state::do_app_rename(std::shared_ptr<app_state> &app, const
std::string &old_app_name)
+{
+ auto after_rename_app = [this, app, old_app_name](dsn::error_code ec)
mutable {
+ if (ERR_OK == ec) {
+ zauto_write_lock l(_lock);
+ _exist_apps.erase(old_app_name);
+
+ std::vector<dsn::rpc_address> replica_nodes;
+ for (auto &node : _nodes) {
+ if (node.second.alive()) {
+ replica_nodes.emplace_back(node.first);
+ }
+ }
+ dsn::error_code err = update_node_configuration(replica_nodes);
+ if (err != ERR_OK) {
+ derror("Failed to update replica_server configuration update
immediately, it wiil retry by replica_server selfly later.");
+ }
+ } else if (ERR_TIMEOUT == ec) {
+ dinfo("rename app(%s) prepare timeout, continue to try later",
app->get_logname());
+ tasking::enqueue(LPC_META_STATE_HIGH,
+ tracker(),
+ std::bind(&server_state::do_app_rename, this,
app, old_app_name),
+ 0,
+ std::chrono::seconds(1));
+ } else {
+ dassert(false, "we can't handle this, error(%s)", ec.to_string());
+ }
+ };
+
+ std::string app_path = get_app_path(*app);
+ blob value = app->to_json(app_status::AS_AVAILABLE);
+ _meta_svc->get_remote_storage()->set_data(
+ app_path, value, LPC_META_STATE_HIGH, after_rename_app);
+}
+
+void server_state::rename_app(dsn::message_ex *msg)
+{
+ configuration_rename_app_request request;
+ configuration_rename_app_response response;
+ std::shared_ptr<app_state> target_app;
+ std::string old_app_name;
+
+ dsn::unmarshall(msg, request);
+ ddebug("rename app request, app_id(%d), new_app_name(%s)", request.app_id,
request.new_app_name);
Review Comment:
use `ddebug_f` instead
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]