This is an automated email from the ASF dual-hosted git repository.

laiyingchun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pegasus.git


The following commit(s) were added to refs/heads/master by this push:
     new baa4840e5 refactor(FQDN): Use const reference to reduce unnecessary 
object copying (#1957)
baa4840e5 is described below

commit baa4840e5f12cf758dd32da6eb7644cd973a1988
Author: Yingchun Lai <[email protected]>
AuthorDate: Wed Apr 10 21:35:38 2024 +0800

    refactor(FQDN): Use const reference to reduce unnecessary object copying 
(#1957)
---
 src/client/partition_resolver.h                    |  2 +-
 src/common/replication_common.cpp                  |  2 +-
 src/common/replication_other_types.h               |  8 +++---
 src/failure_detector/failure_detector.cpp          | 26 +++++++++----------
 src/failure_detector/failure_detector.h            | 30 +++++++++++-----------
 .../failure_detector_multimaster.cpp               |  2 +-
 .../failure_detector_multimaster.h                 |  4 +--
 src/failure_detector/test/failure_detector.cpp     |  6 ++---
 src/meta/cluster_balance_policy.cpp                |  3 ++-
 src/meta/cluster_balance_policy.h                  |  2 +-
 src/meta/load_balance_policy.cpp                   |  4 +--
 src/meta/load_balance_policy.h                     |  4 +--
 src/meta/meta_data.h                               |  4 +--
 src/meta/meta_server_failure_detector.cpp          |  6 ++---
 src/meta/meta_server_failure_detector.h            | 10 ++++----
 src/meta/partition_guardian.h                      |  2 +-
 src/meta/server_state.cpp                          |  5 ++--
 src/meta/server_state.h                            |  4 +--
 .../test/balancer_simulator/balancer_simulator.cpp |  2 +-
 src/meta/test/balancer_validator.cpp               |  2 +-
 src/meta/test/misc/misc.cpp                        | 10 ++++----
 src/nfs/nfs_client_impl.cpp                        |  3 +--
 src/replica/replica.h                              | 10 ++++----
 src/replica/replica_2pc.cpp                        |  2 +-
 src/replica/replica_config.cpp                     |  4 +--
 src/replica/replica_context.cpp                    |  2 +-
 src/replica/replica_context.h                      |  6 ++---
 src/replica/replica_failover.cpp                   |  5 ++--
 src/replica/replica_learn.cpp                      |  2 +-
 src/replica/replica_stub.cpp                       |  2 +-
 src/replica/replica_stub.h                         |  7 ++---
 src/replica/storage/simple_kv/test/checker.cpp     |  2 +-
 src/replica/storage/simple_kv/test/checker.h       |  2 +-
 src/runtime/test/host_port_test.cpp                |  8 +++---
 src/shell/command_helper.h                         |  2 +-
 src/shell/commands/recovery.cpp                    |  2 +-
 36 files changed, 101 insertions(+), 96 deletions(-)

diff --git a/src/client/partition_resolver.h b/src/client/partition_resolver.h
index 8d54c272c..d4105a26b 100644
--- a/src/client/partition_resolver.h
+++ b/src/client/partition_resolver.h
@@ -93,7 +93,7 @@ public:
 
     std::string get_app_name() const { return _app_name; }
 
-    dsn::host_port get_meta_server() const { return _meta_server; }
+    const dsn::host_port &get_meta_server() const { return _meta_server; }
 
     const char *log_prefix() const { return _app_name.c_str(); }
 
diff --git a/src/common/replication_common.cpp 
b/src/common/replication_common.cpp
index e2fae570a..f8e4f3cdf 100644
--- a/src/common/replication_common.cpp
+++ b/src/common/replication_common.cpp
@@ -167,7 +167,7 @@ int32_t 
replication_options::app_mutation_2pc_min_replica_count(int32_t app_max_
 }
 
 /*static*/ bool replica_helper::get_replica_config(const 
partition_configuration &partition_config,
-                                                   ::dsn::host_port node,
+                                                   const ::dsn::host_port 
&node,
                                                    /*out*/ 
replica_configuration &replica_config)
 {
     replica_config.pid = partition_config.pid;
diff --git a/src/common/replication_other_types.h 
b/src/common/replication_other_types.h
index fe0ed7212..ca96428d7 100644
--- a/src/common/replication_other_types.h
+++ b/src/common/replication_other_types.h
@@ -69,9 +69,11 @@ inline bool is_partition_config_equal(const 
partition_configuration &pc1,
                                       const partition_configuration &pc2)
 {
     // secondaries no need to be same order
-    for (const host_port &addr : pc1.hp_secondaries)
-        if (!is_secondary(pc2, addr))
+    for (const auto &hp : pc1.hp_secondaries) {
+        if (!is_secondary(pc2, hp)) {
             return false;
+        }
+    }
     // last_drops is not considered into equality check
     return pc1.ballot == pc2.ballot && pc1.pid == pc2.pid &&
            pc1.max_replica_count == pc2.max_replica_count && pc1.primary == 
pc2.primary &&
@@ -95,7 +97,7 @@ public:
         return false;
     }
     static bool get_replica_config(const partition_configuration 
&partition_config,
-                                   ::dsn::host_port node,
+                                   const ::dsn::host_port &node,
                                    /*out*/ replica_configuration 
&replica_config);
 
     // Return true if 'server_list' is a valid comma-separated list of 
servers, otherwise return
diff --git a/src/failure_detector/failure_detector.cpp 
b/src/failure_detector/failure_detector.cpp
index 70a5c2e9e..c4c6f087c 100644
--- a/src/failure_detector/failure_detector.cpp
+++ b/src/failure_detector/failure_detector.cpp
@@ -125,7 +125,7 @@ void failure_detector::stop()
     _workers.clear();
 }
 
-void failure_detector::register_master(::dsn::host_port target)
+void failure_detector::register_master(const ::dsn::host_port &target)
 {
     bool setup_timer = false;
 
@@ -159,8 +159,8 @@ void failure_detector::register_master(::dsn::host_port 
target)
     }
 }
 
-bool failure_detector::switch_master(::dsn::host_port from,
-                                     ::dsn::host_port to,
+bool failure_detector::switch_master(const ::dsn::host_port &from,
+                                     const ::dsn::host_port &to,
                                      uint32_t delay_milliseconds)
 {
     /* the caller of switch master shoud lock necessarily to protect _masters 
*/
@@ -198,7 +198,7 @@ bool failure_detector::switch_master(::dsn::host_port from,
 
 bool failure_detector::is_time_greater_than(uint64_t ts, uint64_t base) { 
return ts > base; }
 
-void failure_detector::report(::dsn::host_port node, bool is_master, bool 
is_connected)
+void failure_detector::report(const ::dsn::host_port &node, bool is_master, 
bool is_connected)
 {
     LOG_INFO(
         "{} {}connected: {}", is_master ? "master" : "worker", is_connected ? 
"" : "dis", node);
@@ -308,13 +308,13 @@ void failure_detector::check_all_records()
     }
 }
 
-void failure_detector::add_allow_list(::dsn::host_port node)
+void failure_detector::add_allow_list(const ::dsn::host_port &node)
 {
     zauto_lock l(_lock);
     _allow_list.insert(node);
 }
 
-bool failure_detector::remove_from_allow_list(::dsn::host_port node)
+bool failure_detector::remove_from_allow_list(const ::dsn::host_port &node)
 {
     zauto_lock l(_lock);
     return _allow_list.erase(node) > 0;
@@ -325,7 +325,7 @@ void failure_detector::set_allow_list(const 
std::vector<std::string> &replica_hp
     CHECK(!_is_started, "FD is already started, the allow list should really 
not be modified");
 
     std::vector<host_port> nodes;
-    for (auto &hp : replica_hps) {
+    for (const auto &hp : replica_hps) {
         const auto node = dsn::host_port::from_string(hp);
         if (!node) {
             LOG_WARNING("replica_white_list has invalid ip {}, the allow list 
won't be modified",
@@ -507,7 +507,7 @@ bool failure_detector::end_ping_internal(::dsn::error_code 
err, const beacon_ack
     return true;
 }
 
-bool failure_detector::unregister_master(::dsn::host_port node)
+bool failure_detector::unregister_master(const host_port &node)
 {
     zauto_lock l(_lock);
     auto it = _masters.find(node);
@@ -523,7 +523,7 @@ bool failure_detector::unregister_master(::dsn::host_port 
node)
     }
 }
 
-bool failure_detector::is_master_connected(::dsn::host_port node) const
+bool failure_detector::is_master_connected(const host_port &node) const
 {
     zauto_lock l(_lock);
     auto it = _masters.find(node);
@@ -533,7 +533,7 @@ bool failure_detector::is_master_connected(::dsn::host_port 
node) const
         return false;
 }
 
-void failure_detector::register_worker(::dsn::host_port target, bool 
is_connected)
+void failure_detector::register_worker(const host_port &target, bool 
is_connected)
 {
     /*
      * callers should use the fd::_lock necessarily
@@ -549,7 +549,7 @@ void failure_detector::register_worker(::dsn::host_port 
target, bool is_connecte
     }
 }
 
-bool failure_detector::unregister_worker(::dsn::host_port node)
+bool failure_detector::unregister_worker(const host_port &node)
 {
     /*
      * callers should use the fd::_lock necessarily
@@ -575,7 +575,7 @@ void failure_detector::clear_workers()
     _workers.clear();
 }
 
-bool failure_detector::is_worker_connected(::dsn::host_port node) const
+bool failure_detector::is_worker_connected(const ::dsn::host_port &node) const
 {
     zauto_lock l(_lock);
     auto it = _workers.find(node);
@@ -585,7 +585,7 @@ bool failure_detector::is_worker_connected(::dsn::host_port 
node) const
         return false;
 }
 
-void failure_detector::send_beacon(::dsn::host_port target, uint64_t time)
+void failure_detector::send_beacon(const host_port &target, uint64_t time)
 {
     const auto &addr_target = 
dsn::dns_resolver::instance().resolve_address(target);
     beacon_msg beacon;
diff --git a/src/failure_detector/failure_detector.h 
b/src/failure_detector/failure_detector.h
index af50122d2..4ff0fc53e 100644
--- a/src/failure_detector/failure_detector.h
+++ b/src/failure_detector/failure_detector.h
@@ -64,11 +64,11 @@ public:
 
     // worker side
     virtual void on_master_disconnected(const std::vector<::dsn::host_port> 
&nodes) = 0;
-    virtual void on_master_connected(::dsn::host_port node) = 0;
+    virtual void on_master_connected(const host_port &node) = 0;
 
     // master side
     virtual void on_worker_disconnected(const std::vector<::dsn::host_port> 
&nodes) = 0;
-    virtual void on_worker_connected(::dsn::host_port node) = 0;
+    virtual void on_worker_connected(const ::dsn::host_port &node) = 0;
 };
 
 // The interface for a perfect failure detector.
@@ -121,30 +121,30 @@ public:
     uint32_t get_lease_ms() const { return _lease_milliseconds; }
     uint32_t get_grace_ms() const { return _grace_milliseconds; }
 
-    void register_master(::dsn::host_port target);
+    void register_master(const host_port &target);
 
-    bool switch_master(::dsn::host_port from, ::dsn::host_port to, uint32_t 
delay_milliseconds);
+    bool switch_master(const host_port &from, const host_port &to, uint32_t 
delay_milliseconds);
 
-    bool unregister_master(::dsn::host_port node);
+    bool unregister_master(const host_port &node);
 
-    virtual bool is_master_connected(::dsn::host_port node) const;
+    virtual bool is_master_connected(const host_port &node) const;
 
     // ATTENTION: be very careful to set is_connected to false as
     // workers are always considered *connected* initially which is ok even 
when workers think
     // master is disconnected
     // Considering workers *disconnected* initially is *dangerous* coz it may 
violate the invariance
     // when workers think they are online
-    void register_worker(::dsn::host_port node, bool is_connected = true);
+    void register_worker(const host_port &node, bool is_connected = true);
 
-    bool unregister_worker(::dsn::host_port node);
+    bool unregister_worker(const host_port &node);
 
     void clear_workers();
 
-    virtual bool is_worker_connected(::dsn::host_port node) const;
+    virtual bool is_worker_connected(const host_port &node) const;
 
-    void add_allow_list(::dsn::host_port node);
+    void add_allow_list(const host_port &node);
 
-    bool remove_from_allow_list(::dsn::host_port node);
+    bool remove_from_allow_list(const host_port &node);
 
     void set_allow_list(const std::vector<std::string> &replica_hps);
 
@@ -162,7 +162,7 @@ protected:
 
     bool is_time_greater_than(uint64_t ts, uint64_t base);
 
-    void report(::dsn::host_port node, bool is_master, bool is_connected);
+    void report(const host_port &node, bool is_master, bool is_connected);
 
 private:
     void check_all_records();
@@ -179,7 +179,7 @@ private:
 
         // masters are always considered *disconnected* initially which is ok 
even when master
         // thinks workers are connected
-        master_record(::dsn::host_port n, uint64_t 
last_send_time_for_beacon_with_ack_)
+        master_record(const host_port &n, uint64_t 
last_send_time_for_beacon_with_ack_)
         {
             node = n;
             last_send_time_for_beacon_with_ack = 
last_send_time_for_beacon_with_ack_;
@@ -197,7 +197,7 @@ private:
 
         // workers are always considered *connected* initially which is ok 
even when workers think
         // master is disconnected
-        worker_record(::dsn::host_port node, uint64_t last_beacon_recv_time)
+        worker_record(const host_port &node, uint64_t last_beacon_recv_time)
         {
             this->node = node;
             this->last_beacon_recv_time = last_beacon_recv_time;
@@ -235,7 +235,7 @@ protected:
     dsn::task_tracker _tracker;
 
     // subClass can rewrite these method.
-    virtual void send_beacon(::dsn::host_port node, uint64_t time);
+    virtual void send_beacon(const host_port &node, uint64_t time);
 };
 }
 } // end namespace
diff --git a/src/failure_detector/failure_detector_multimaster.cpp 
b/src/failure_detector/failure_detector_multimaster.cpp
index 32bca4b42..08eb67726 100644
--- a/src/failure_detector/failure_detector_multimaster.cpp
+++ b/src/failure_detector/failure_detector_multimaster.cpp
@@ -131,7 +131,7 @@ void 
slave_failure_detector_with_multimaster::on_master_disconnected(
     }
 }
 
-void 
slave_failure_detector_with_multimaster::on_master_connected(::dsn::host_port 
node)
+void slave_failure_detector_with_multimaster::on_master_connected(const 
host_port &node)
 {
     /*
     * well, this is called in on_ping_internal, which is called by 
rep::end_ping.
diff --git a/src/failure_detector/failure_detector_multimaster.h 
b/src/failure_detector/failure_detector_multimaster.h
index a431cb4d3..3a803f9c6 100644
--- a/src/failure_detector/failure_detector_multimaster.h
+++ b/src/failure_detector/failure_detector_multimaster.h
@@ -57,14 +57,14 @@ public:
 
     // client side
     void on_master_disconnected(const std::vector<::dsn::host_port> &nodes) 
override;
-    void on_master_connected(::dsn::host_port node) override;
+    void on_master_connected(const host_port &node) override;
 
     // server side
     void on_worker_disconnected(const std::vector<::dsn::host_port> &nodes) 
override
     {
         CHECK(false, "invalid execution flow");
     }
-    void on_worker_connected(::dsn::host_port node) override
+    void on_worker_connected(const host_port &node) override
     {
         CHECK(false, "invalid execution flow");
     }
diff --git a/src/failure_detector/test/failure_detector.cpp 
b/src/failure_detector/test/failure_detector.cpp
index 49c223e89..dcfcd69ae 100644
--- a/src/failure_detector/test/failure_detector.cpp
+++ b/src/failure_detector/test/failure_detector.cpp
@@ -88,7 +88,7 @@ private:
     std::function<void(const std::vector<host_port> &)> _disconnected_cb;
 
 protected:
-    virtual void send_beacon(::dsn::host_port node, uint64_t time) override
+    virtual void send_beacon(const host_port &node, uint64_t time) override
     {
         if (_send_ping_switch)
             failure_detector::send_beacon(node, time);
@@ -103,7 +103,7 @@ protected:
             _disconnected_cb(nodes);
     }
 
-    virtual void on_master_connected(host_port node) override
+    virtual void on_master_connected(const host_port &node) override
     {
         if (_connected_cb)
             _connected_cb(node);
@@ -155,7 +155,7 @@ public:
         if (_disconnected_cb)
             _disconnected_cb(worker_list);
     }
-    virtual void on_worker_connected(host_port node) override
+    virtual void on_worker_connected(const host_port &node) override
     {
         if (_connected_cb)
             _connected_cb(node);
diff --git a/src/meta/cluster_balance_policy.cpp 
b/src/meta/cluster_balance_policy.cpp
index 8b2788e71..6a81a8365 100644
--- a/src/meta/cluster_balance_policy.cpp
+++ b/src/meta/cluster_balance_policy.cpp
@@ -495,7 +495,8 @@ bool cluster_balance_policy::apply_move(const move_info 
&move,
                                         /*out*/ cluster_migration_info 
&cluster_info)
 {
     int32_t app_id = move.pid.get_app_id();
-    host_port source = move.source_node, target = move.target_node;
+    const auto &source = move.source_node;
+    const auto &target = move.target_node;
     if (cluster_info.apps_skew.find(app_id) == cluster_info.apps_skew.end() ||
         cluster_info.replicas_count.find(source) == 
cluster_info.replicas_count.end() ||
         cluster_info.replicas_count.find(target) == 
cluster_info.replicas_count.end() ||
diff --git a/src/meta/cluster_balance_policy.h 
b/src/meta/cluster_balance_policy.h
index 196bf5a9b..c7189fd35 100644
--- a/src/meta/cluster_balance_policy.h
+++ b/src/meta/cluster_balance_policy.h
@@ -116,7 +116,7 @@ private:
         {
             return app_id == another.app_id;
         }
-        partition_status::type get_partition_status(int32_t pidx, host_port 
node)
+        partition_status::type get_partition_status(int32_t pidx, const 
host_port &node)
         {
             for (const auto &kv : partitions[pidx]) {
                 if (kv.first == node) {
diff --git a/src/meta/load_balance_policy.cpp b/src/meta/load_balance_policy.cpp
index 3b44fbb9b..cdea0b39c 100644
--- a/src/meta/load_balance_policy.cpp
+++ b/src/meta/load_balance_policy.cpp
@@ -350,8 +350,8 @@ std::list<dsn::gpid> 
load_balance_policy::calc_potential_moving(
 dsn::gpid load_balance_policy::select_moving(std::list<dsn::gpid> 
&potential_moving,
                                              disk_load *prev_load,
                                              disk_load *current_load,
-                                             host_port from,
-                                             host_port to)
+                                             const host_port &from,
+                                             const host_port &to)
 {
     std::list<dsn::gpid>::iterator selected = potential_moving.end();
     int max = std::numeric_limits<int>::min();
diff --git a/src/meta/load_balance_policy.h b/src/meta/load_balance_policy.h
index 5afbda587..8294ff8ac 100644
--- a/src/meta/load_balance_policy.h
+++ b/src/meta/load_balance_policy.h
@@ -130,8 +130,8 @@ private:
     dsn::gpid select_moving(std::list<dsn::gpid> &potential_moving,
                             disk_load *prev_load,
                             disk_load *current_load,
-                            host_port from,
-                            host_port to);
+                            const host_port &from,
+                            const host_port &to);
     void number_nodes(const node_mapper &nodes);
 
     std::string remote_command_balancer_ignored_app_ids(const 
std::vector<std::string> &args);
diff --git a/src/meta/meta_data.h b/src/meta/meta_data.h
index 55384f519..05ee95790 100644
--- a/src/meta/meta_data.h
+++ b/src/meta/meta_data.h
@@ -437,7 +437,7 @@ struct meta_view
     node_mapper *nodes;
 };
 
-inline node_state *get_node_state(node_mapper &nodes, host_port hp, bool 
create_new)
+inline node_state *get_node_state(node_mapper &nodes, const host_port &hp, 
bool create_new)
 {
     node_state *ns;
     if (nodes.find(hp) == nodes.end()) {
@@ -450,7 +450,7 @@ inline node_state *get_node_state(node_mapper &nodes, 
host_port hp, bool create_
     return ns;
 }
 
-inline bool is_node_alive(const node_mapper &nodes, host_port hp)
+inline bool is_node_alive(const node_mapper &nodes, const host_port &hp)
 {
     auto iter = nodes.find(hp);
     if (iter == nodes.end())
diff --git a/src/meta/meta_server_failure_detector.cpp 
b/src/meta/meta_server_failure_detector.cpp
index 1da8e3a99..e729bd87f 100644
--- a/src/meta/meta_server_failure_detector.cpp
+++ b/src/meta/meta_server_failure_detector.cpp
@@ -101,7 +101,7 @@ void 
meta_server_failure_detector::on_worker_disconnected(const std::vector<host
     _svc->set_node_state(nodes, false);
 }
 
-void meta_server_failure_detector::on_worker_connected(host_port node)
+void meta_server_failure_detector::on_worker_connected(const host_port &node)
 {
     _svc->set_node_state({node}, true);
 }
@@ -338,7 +338,7 @@ void meta_server_failure_detector::on_ping(const 
fd::beacon_msg &beacon,
 }
 
 /*the following functions are only for test*/
-meta_server_failure_detector::meta_server_failure_detector(host_port 
leader_host_port,
+meta_server_failure_detector::meta_server_failure_detector(const host_port 
&leader_host_port,
                                                            bool 
is_myself_leader)
 {
     LOG_INFO("set {} as leader", leader_host_port);
@@ -346,7 +346,7 @@ 
meta_server_failure_detector::meta_server_failure_detector(host_port leader_host
     _is_leader.store(is_myself_leader);
 }
 
-void meta_server_failure_detector::set_leader_for_test(host_port 
leader_host_port,
+void meta_server_failure_detector::set_leader_for_test(const host_port 
&leader_host_port,
                                                        bool is_myself_leader)
 {
     LOG_INFO("set {} as leader", leader_host_port);
diff --git a/src/meta/meta_server_failure_detector.h 
b/src/meta/meta_server_failure_detector.h
index 2b9d780a1..a4f7b6d12 100644
--- a/src/meta/meta_server_failure_detector.h
+++ b/src/meta/meta_server_failure_detector.h
@@ -98,14 +98,14 @@ public:
     {
         CHECK(false, "unsupported method");
     }
-    virtual void on_master_connected(host_port) { CHECK(false, "unsupported 
method"); }
+    virtual void on_master_connected(const host_port &) { CHECK(false, 
"unsupported method"); }
 
     // server side
     // it is in the protection of failure_detector::_lock
     virtual void on_worker_disconnected(const std::vector<host_port> &nodes) 
override;
     // it is in the protection of failure_detector::_lock
-    virtual void on_worker_connected(host_port node) override;
-    virtual bool is_worker_connected(host_port node) const override
+    virtual void on_worker_connected(const host_port &node) override;
+    virtual bool is_worker_connected(const host_port &node) const override
     {
         // we treat all nodes not in the worker list alive in the first grace 
period.
         // For the reason, please consider this situation:
@@ -150,8 +150,8 @@ private:
 
 public:
     /* these two functions are for test */
-    meta_server_failure_detector(host_port leader_host_port, bool 
is_myself_leader);
-    void set_leader_for_test(host_port leader_host_port, bool 
is_myself_leader);
+    meta_server_failure_detector(const host_port &leader_host_port, bool 
is_myself_leader);
+    void set_leader_for_test(const host_port &leader_host_port, bool 
is_myself_leader);
     stability_map *get_stability_map_for_test();
 };
 }
diff --git a/src/meta/partition_guardian.h b/src/meta/partition_guardian.h
index 7a7953b59..4fd3f966d 100644
--- a/src/meta/partition_guardian.h
+++ b/src/meta/partition_guardian.h
@@ -82,7 +82,7 @@ private:
         _ddd_partitions[partition.config.pid] = std::move(partition);
     }
 
-    bool in_black_list(dsn::host_port hp)
+    bool in_black_list(const dsn::host_port &hp)
     {
         dsn::zauto_read_lock l(_black_list_lock);
         return _assign_secondary_black_list.count(hp) != 0;
diff --git a/src/meta/server_state.cpp b/src/meta/server_state.cpp
index 17a7e3e3f..d7a992692 100644
--- a/src/meta/server_state.cpp
+++ b/src/meta/server_state.cpp
@@ -1431,7 +1431,8 @@ void server_state::list_apps(const 
configuration_list_apps_request &request,
     response.err = dsn::ERR_OK;
 }
 
-void server_state::send_proposal(host_port target, const 
configuration_update_request &proposal)
+void server_state::send_proposal(const host_port &target,
+                                 const configuration_update_request &proposal)
 {
     host_port hp_node;
     GET_HOST_PORT(proposal, node, hp_node);
@@ -2093,7 +2094,7 @@ void 
server_state::on_partition_node_dead(std::shared_ptr<app_state> &app,
     }
 }
 
-void server_state::on_change_node_state(host_port node, bool is_alive)
+void server_state::on_change_node_state(const host_port &node, bool is_alive)
 {
     LOG_DEBUG("change node({}) state to {}", node, is_alive ? "alive" : 
"dead");
     zauto_write_lock l(_lock);
diff --git a/src/meta/server_state.h b/src/meta/server_state.h
index b6b20a790..aad53ec5c 100644
--- a/src/meta/server_state.h
+++ b/src/meta/server_state.h
@@ -182,7 +182,7 @@ public:
     error_code dump_from_remote_storage(const char *local_path, bool 
sync_immediately);
     error_code restore_from_local_storage(const char *local_path);
 
-    void on_change_node_state(host_port node, bool is_alive);
+    void on_change_node_state(const host_port &node, bool is_alive);
     void on_propose_balancer(const configuration_balancer_request &request,
                              configuration_balancer_response &response);
     void on_start_recovery(const configuration_recovery_request &request,
@@ -289,7 +289,7 @@ private:
     void on_partition_node_dead(std::shared_ptr<app_state> &app,
                                 int pidx,
                                 const dsn::host_port &address);
-    void send_proposal(host_port target, const configuration_update_request 
&proposal);
+    void send_proposal(const host_port &target, const 
configuration_update_request &proposal);
     void send_proposal(const configuration_proposal_action &action,
                        const partition_configuration &pc,
                        const app_state &app);
diff --git a/src/meta/test/balancer_simulator/balancer_simulator.cpp 
b/src/meta/test/balancer_simulator/balancer_simulator.cpp
index e23bbdb83..5e1bf5a52 100644
--- a/src/meta/test/balancer_simulator/balancer_simulator.cpp
+++ b/src/meta/test/balancer_simulator/balancer_simulator.cpp
@@ -69,7 +69,7 @@ public:
         container.pop_back();
         return result;
     }
-    dsn::host_port top() const { return container.front(); }
+    const dsn::host_port &top() const { return container.front(); }
     bool empty() const { return container.empty(); }
 private:
     std::vector<dsn::host_port> container;
diff --git a/src/meta/test/balancer_validator.cpp 
b/src/meta/test/balancer_validator.cpp
index 804f9c61d..bca7d4fde 100644
--- a/src/meta/test/balancer_validator.cpp
+++ b/src/meta/test/balancer_validator.cpp
@@ -172,7 +172,7 @@ void meta_service_test_app::balancer_validator()
     // now test the cure
     ::dsn::partition_configuration &pc = the_app->partitions[0];
     nodes[pc.hp_primary].remove_partition(pc.pid, false);
-    for (const dsn::host_port &hp : pc.hp_secondaries)
+    for (const auto &hp : pc.hp_secondaries)
         nodes[hp].remove_partition(pc.pid, false);
     pc.primary.set_invalid();
     pc.secondaries.clear();
diff --git a/src/meta/test/misc/misc.cpp b/src/meta/test/misc/misc.cpp
index a2fa90ab5..8e57ba1d1 100644
--- a/src/meta/test/misc/misc.cpp
+++ b/src/meta/test/misc/misc.cpp
@@ -96,7 +96,7 @@ void generate_node_mapper(
     const std::vector<dsn::host_port> &input_node_list)
 {
     output_nodes.clear();
-    for (auto &hp : input_node_list) {
+    for (const auto &hp : input_node_list) {
         get_node_state(output_nodes, hp, true)->set_alive(true);
     }
 
@@ -108,7 +108,7 @@ void generate_node_mapper(
                 ns = get_node_state(output_nodes, pc.hp_primary, true);
                 ns->put_partition(pc.pid, true);
             }
-            for (const dsn::host_port &sec : pc.hp_secondaries) {
+            for (const auto &sec : pc.hp_secondaries) {
                 CHECK(!sec.is_invalid(), "");
                 ns = get_node_state(output_nodes, sec, true);
                 ns->put_partition(pc.pid, false);
@@ -159,7 +159,7 @@ void generate_app_serving_replica_info(/*out*/ 
std::shared_ptr<dsn::replication:
         ri.disk_tag = buffer;
         cc.collect_serving_replica(pc.hp_primary, ri);
 
-        for (const dsn::host_port &hp : pc.hp_secondaries) {
+        for (const auto &hp : pc.hp_secondaries) {
             snprintf(buffer, 256, "disk%u", dsn::rand::next_u32(1, 
total_disks));
             ri.disk_tag = buffer;
             cc.collect_serving_replica(hp, ri);
@@ -425,8 +425,8 @@ void migration_check_and_apply(app_mapper &apps,
 
         CHECK(!pc.hp_primary.is_invalid(), "");
         CHECK_EQ(pc.hp_secondaries.size(), 2);
-        for (auto &host_port : pc.hp_secondaries) {
-            CHECK(!host_port.is_invalid(), "");
+        for (const auto &hp : pc.hp_secondaries) {
+            CHECK(hp, "");
         }
         CHECK(!is_secondary(pc, pc.hp_primary), "");
 
diff --git a/src/nfs/nfs_client_impl.cpp b/src/nfs/nfs_client_impl.cpp
index 0feb71711..7712583b2 100644
--- a/src/nfs/nfs_client_impl.cpp
+++ b/src/nfs/nfs_client_impl.cpp
@@ -34,7 +34,6 @@
 #include "nfs/nfs_code_definition.h"
 #include "nfs/nfs_node.h"
 #include "runtime/rpc/dns_resolver.h"
-#include "runtime/rpc/rpc_host_port.h"
 #include "utils/blob.h"
 #include "utils/command_manager.h"
 #include "utils/filesystem.h"
@@ -355,7 +354,7 @@ void nfs_client_impl::end_copy(::dsn::error_code err,
         METRIC_VAR_INCREMENT(nfs_client_copy_failed_requests);
 
         if (!fc->user_req->is_finished) {
-            host_port hp = fc->user_req->file_size_req.hp_source;
+            const auto &hp = fc->user_req->file_size_req.hp_source;
             if (reqc->retry_count > 0) {
                 LOG_WARNING(
                     "[nfs_service] remote copy failed, source = {}({}), dir = 
{}, file = {}, "
diff --git a/src/replica/replica.h b/src/replica/replica.h
index ab9e451a4..6ab8bfde4 100644
--- a/src/replica/replica.h
+++ b/src/replica/replica.h
@@ -326,7 +326,7 @@ private:
     // See more about it in `replica_bulk_loader.cpp`
     void
     init_prepare(mutation_ptr &mu, bool reconciliation, bool 
pop_all_committed_mutations = false);
-    void send_prepare_message(::dsn::host_port addr,
+    void send_prepare_message(const ::dsn::host_port &addr,
                               partition_status::type status,
                               const mutation_ptr &mu,
                               int timeout_milliseconds,
@@ -352,7 +352,7 @@ private:
                                         learn_response &&resp);
     void on_learn_remote_state_completed(error_code err);
     void handle_learning_error(error_code err, bool is_local_error);
-    error_code handle_learning_succeeded_on_primary(::dsn::host_port node,
+    error_code handle_learning_succeeded_on_primary(const host_port &node,
                                                     uint64_t learn_signature);
     void notify_learn_completion();
     error_code apply_learned_state_from_private_log(learn_state &state);
@@ -381,7 +381,7 @@ private:
     // failure handling
     void handle_local_failure(error_code error);
     void handle_remote_failure(partition_status::type status,
-                               ::dsn::host_port node,
+                               const host_port &node,
                                error_code error,
                                const std::string &caused_by);
 
@@ -389,12 +389,12 @@ private:
     // reconfiguration
     void assign_primary(configuration_update_request &proposal);
     void add_potential_secondary(configuration_update_request &proposal);
-    void upgrade_to_secondary_on_primary(::dsn::host_port node);
+    void upgrade_to_secondary_on_primary(const host_port &node);
     void downgrade_to_secondary_on_primary(configuration_update_request 
&proposal);
     void downgrade_to_inactive_on_primary(configuration_update_request 
&proposal);
     void remove(configuration_update_request &proposal);
     void update_configuration_on_meta_server(config_type::type type,
-                                             ::dsn::host_port node,
+                                             const host_port &node,
                                              partition_configuration 
&newConfig);
     void
     on_update_configuration_on_meta_server_reply(error_code err,
diff --git a/src/replica/replica_2pc.cpp b/src/replica/replica_2pc.cpp
index 5440a048c..ccbf3c87c 100644
--- a/src/replica/replica_2pc.cpp
+++ b/src/replica/replica_2pc.cpp
@@ -357,7 +357,7 @@ ErrOut:
     return;
 }
 
-void replica::send_prepare_message(::dsn::host_port hp,
+void replica::send_prepare_message(const ::dsn::host_port &hp,
                                    partition_status::type status,
                                    const mutation_ptr &mu,
                                    int timeout_milliseconds,
diff --git a/src/replica/replica_config.cpp b/src/replica/replica_config.cpp
index 386a03e72..6fa389aad 100644
--- a/src/replica/replica_config.cpp
+++ b/src/replica/replica_config.cpp
@@ -245,7 +245,7 @@ void 
replica::add_potential_secondary(configuration_update_request &proposal)
         proposal.node, RPC_LEARN_ADD_LEARNER, request, 
get_gpid().thread_hash());
 }
 
-void replica::upgrade_to_secondary_on_primary(::dsn::host_port node)
+void replica::upgrade_to_secondary_on_primary(const ::dsn::host_port &node)
 {
     LOG_INFO_PREFIX("upgrade potential secondary {} to secondary", node);
 
@@ -367,7 +367,7 @@ void replica::on_remove(const replica_configuration 
&request)
 }
 
 void replica::update_configuration_on_meta_server(config_type::type type,
-                                                  ::dsn::host_port node,
+                                                  const host_port &node,
                                                   partition_configuration 
&newConfig)
 {
     // type should never be `CT_REGISTER_CHILD`
diff --git a/src/replica/replica_context.cpp b/src/replica/replica_context.cpp
index 07490bc50..acc8fa64a 100644
--- a/src/replica/replica_context.cpp
+++ b/src/replica/replica_context.cpp
@@ -131,7 +131,7 @@ void 
primary_context::get_replica_config(partition_status::type st,
     config.learner_signature = learner_signature;
 }
 
-bool primary_context::check_exist(::dsn::host_port node, 
partition_status::type st)
+bool primary_context::check_exist(const ::dsn::host_port &node, 
partition_status::type st)
 {
     switch (st) {
     case partition_status::PS_PRIMARY:
diff --git a/src/replica/replica_context.h b/src/replica/replica_context.h
index 5099260c1..0a3b49924 100644
--- a/src/replica/replica_context.h
+++ b/src/replica/replica_context.h
@@ -104,8 +104,8 @@ public:
     void get_replica_config(partition_status::type status,
                             /*out*/ replica_configuration &config,
                             uint64_t learner_signature = invalid_signature);
-    bool check_exist(::dsn::host_port node, partition_status::type status);
-    partition_status::type get_node_status(::dsn::host_port hp) const;
+    bool check_exist(const ::dsn::host_port &node, partition_status::type 
status);
+    partition_status::type get_node_status(const ::dsn::host_port &hp) const;
 
     void do_cleanup_pending_mutations(bool clean_pending_mutations = true);
 
@@ -295,7 +295,7 @@ public:
 
 //---------------inline 
impl----------------------------------------------------------------
 
-inline partition_status::type 
primary_context::get_node_status(::dsn::host_port hp) const
+inline partition_status::type primary_context::get_node_status(const 
::dsn::host_port &hp) const
 {
     auto it = statuses.find(hp);
     return it != statuses.end() ? it->second : partition_status::PS_INACTIVE;
diff --git a/src/replica/replica_failover.cpp b/src/replica/replica_failover.cpp
index b689dbdda..3dab15c8d 100644
--- a/src/replica/replica_failover.cpp
+++ b/src/replica/replica_failover.cpp
@@ -38,11 +38,12 @@
 #include "replica_stub.h"
 #include "runtime/rpc/dns_resolver.h"
 #include "runtime/rpc/rpc_address.h"
-#include "runtime/rpc/rpc_host_port.h"
 #include "utils/error_code.h"
 #include "utils/fmt_logging.h"
 
 namespace dsn {
+class host_port;
+
 namespace replication {
 
 // The failure handling part of replica.
@@ -65,7 +66,7 @@ void replica::handle_local_failure(error_code error)
 }
 
 void replica::handle_remote_failure(partition_status::type st,
-                                    ::dsn::host_port node,
+                                    const ::dsn::host_port &node,
                                     error_code error,
                                     const std::string &caused_by)
 {
diff --git a/src/replica/replica_learn.cpp b/src/replica/replica_learn.cpp
index 92a1c49c3..9048e7a61 100644
--- a/src/replica/replica_learn.cpp
+++ b/src/replica/replica_learn.cpp
@@ -1298,7 +1298,7 @@ void replica::handle_learning_error(error_code err, bool 
is_local_error)
         is_local_error ? partition_status::PS_ERROR : 
partition_status::PS_INACTIVE);
 }
 
-error_code replica::handle_learning_succeeded_on_primary(::dsn::host_port node,
+error_code replica::handle_learning_succeeded_on_primary(const host_port &node,
                                                          uint64_t 
learn_signature)
 {
     auto it = _primary_states.learners.find(node);
diff --git a/src/replica/replica_stub.cpp b/src/replica/replica_stub.cpp
index 6d581edfd..418844913 100644
--- a/src/replica/replica_stub.cpp
+++ b/src/replica/replica_stub.cpp
@@ -2589,7 +2589,7 @@ uint64_t replica_stub::gc_tcmalloc_memory(bool 
release_all)
 //
 // partition split
 //
-void replica_stub::create_child_replica(host_port primary_address,
+void replica_stub::create_child_replica(const host_port &primary_address,
                                         app_info app,
                                         ballot init_ballot,
                                         gpid child_gpid,
diff --git a/src/replica/replica_stub.h b/src/replica/replica_stub.h
index 9e1c09762..516bc2303 100644
--- a/src/replica/replica_stub.h
+++ b/src/replica/replica_stub.h
@@ -115,8 +115,9 @@ class cold_backup_context;
 class replica_split_manager;
 
 typedef std::unordered_map<gpid, replica_ptr> replicas;
-typedef std::function<void(
-    ::dsn::host_port /*from*/, const replica_configuration & /*new_config*/, 
bool /*is_closing*/)>
+typedef std::function<void(const ::dsn::host_port & /*from*/,
+                           const replica_configuration & /*new_config*/,
+                           bool /*is_closing*/)>
     replica_state_subscriber;
 
 class replica_stub;
@@ -229,7 +230,7 @@ public:
     //
 
     // called by parent partition, executed by child partition
-    void create_child_replica(dsn::host_port primary_address,
+    void create_child_replica(const dsn::host_port &primary_address,
                               app_info app,
                               ballot init_ballot,
                               gpid child_gpid,
diff --git a/src/replica/storage/simple_kv/test/checker.cpp 
b/src/replica/storage/simple_kv/test/checker.cpp
index 405181897..4fa40dbf0 100644
--- a/src/replica/storage/simple_kv/test/checker.cpp
+++ b/src/replica/storage/simple_kv/test/checker.cpp
@@ -280,7 +280,7 @@ void test_checker::check()
     }
 }
 
-void test_checker::on_replica_state_change(::dsn::host_port from,
+void test_checker::on_replica_state_change(const host_port &from,
                                            const replica_configuration 
&new_config,
                                            bool is_closing)
 {
diff --git a/src/replica/storage/simple_kv/test/checker.h 
b/src/replica/storage/simple_kv/test/checker.h
index b5d3e2bf7..c94059edd 100644
--- a/src/replica/storage/simple_kv/test/checker.h
+++ b/src/replica/storage/simple_kv/test/checker.h
@@ -76,7 +76,7 @@ public:
     std::string address_to_node_name(host_port addr);
     host_port node_name_to_address(const std::string &name);
 
-    void on_replica_state_change(::dsn::host_port from,
+    void on_replica_state_change(const host_port &from,
                                  const replica_configuration &new_config,
                                  bool is_closing);
     void on_config_change(const app_mapper &new_config);
diff --git a/src/runtime/test/host_port_test.cpp 
b/src/runtime/test/host_port_test.cpp
index 722ea5e2f..0c27d5e4a 100644
--- a/src/runtime/test/host_port_test.cpp
+++ b/src/runtime/test/host_port_test.cpp
@@ -44,7 +44,7 @@ namespace dsn {
 TEST(host_port_test, host_port_to_string)
 {
     {
-        host_port hp = host_port("localhost", 8080);
+        host_port hp("localhost", 8080);
         ASSERT_EQ("localhost:8080", hp.to_string());
     }
 
@@ -56,7 +56,7 @@ TEST(host_port_test, host_port_to_string)
 
 TEST(host_port_test, host_port_build)
 {
-    host_port hp = host_port("localhost", 8080);
+    host_port hp("localhost", 8080);
     ASSERT_EQ(HOST_TYPE_IPV4, hp.type());
     ASSERT_EQ(8080, hp.port());
     ASSERT_EQ("localhost", hp.host());
@@ -276,11 +276,11 @@ void send_and_check_host_port_by_serialize(const 
host_port &hp, dsn_msg_serializ
 
 TEST(host_port_test, thrift_parser)
 {
-    host_port hp1 = host_port("localhost", 8080);
+    host_port hp1("localhost", 8080);
     send_and_check_host_port_by_serialize(hp1, DSF_THRIFT_BINARY);
     send_and_check_host_port_by_serialize(hp1, DSF_THRIFT_JSON);
 
-    host_port hp2 = host_port("localhost", 1010);
+    host_port hp2("localhost", 1010);
     send_and_check_host_port_by_serialize(hp2, DSF_THRIFT_BINARY);
     send_and_check_host_port_by_serialize(hp2, DSF_THRIFT_JSON);
 }
diff --git a/src/shell/command_helper.h b/src/shell/command_helper.h
index ca5a4c303..8b8301ebd 100644
--- a/src/shell/command_helper.h
+++ b/src/shell/command_helper.h
@@ -633,7 +633,7 @@ struct node_desc
 inline bool fill_nodes(shell_context *sc, const std::string &type, 
std::vector<node_desc> &nodes)
 {
     if (type == "all" || type == "meta-server") {
-        for (auto &hp : sc->meta_list) {
+        for (const auto &hp : sc->meta_list) {
             nodes.emplace_back("meta-server", hp);
         }
     }
diff --git a/src/shell/commands/recovery.cpp b/src/shell/commands/recovery.cpp
index 15d1aded0..9bb00ebfd 100644
--- a/src/shell/commands/recovery.cpp
+++ b/src/shell/commands/recovery.cpp
@@ -314,7 +314,7 @@ bool ddd_diagnose(command_executor *e, shell_context *sc, 
arguments args)
         }
         out << "    ----" << std::endl;
         j = 0;
-        for (const ::dsn::host_port &r : pinfo.config.hp_last_drops) {
+        for (const auto &r : pinfo.config.hp_last_drops) {
             out << "    last_drops[" << j++ << "]: "
                 << "node(" << r.to_string() << ")";
             if (j == (int)pinfo.config.hp_last_drops.size() - 1)


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


Reply via email to