diff options
author | Arne Juul <arnej@yahooinc.com> | 2023-03-01 10:42:02 +0000 |
---|---|---|
committer | Arne Juul <arnej@yahooinc.com> | 2023-03-01 10:42:02 +0000 |
commit | 7b9b83046cfd8460128da068d286214da051bfbe (patch) | |
tree | 9e5ae4daa1f18ddafc2dfa5ed858d1cb58a751bd /configd | |
parent | 31db1c671fac8e34f098f9d6d9797c2c1e05d433 (diff) |
pre-compute higher timeout based on number of nodes to check
Diffstat (limited to 'configd')
-rw-r--r-- | configd/src/apps/sentinel/connectivity.cpp | 6 | ||||
-rw-r--r-- | configd/src/apps/sentinel/report-connectivity.cpp | 2 |
2 files changed, 3 insertions, 5 deletions
diff --git a/configd/src/apps/sentinel/connectivity.cpp b/configd/src/apps/sentinel/connectivity.cpp index b9641cc19e0..9cd8d5c985a 100644 --- a/configd/src/apps/sentinel/connectivity.cpp +++ b/configd/src/apps/sentinel/connectivity.cpp @@ -75,10 +75,9 @@ void classifyConnFails(ConnectivityMap &connectivityMap, LOG_ASSERT(cmIter != connectivityMap.end()); OutwardCheckContext cornerContext(goodNeighborSpecs.size(), nameToCheck, portToCheck, rpcServer.orb()); ConnectivityMap cornerProbes; - int ping_timeout = 1000; + int ping_timeout = 1000 + 50 * goodNeighborSpecs.size(); for (const auto & hp : goodNeighborSpecs) { cornerProbes.try_emplace(hp.first, spec(hp), cornerContext, ping_timeout); - ping_timeout += 20; } cornerContext.latch.await(); size_t numReportsUp = 0; @@ -154,10 +153,9 @@ Connectivity::checkConnectivity(RpcServer &rpcServer) { rpcServer.getPort(), rpcServer.orb()); ConnectivityMap connectivityMap; - int ping_timeout = 1000; + int ping_timeout = 1000 + 50 * _checkSpecs.size(); for (const auto &host_and_port : _checkSpecs) { connectivityMap.try_emplace(host_and_port.first, spec(host_and_port), checkContext, ping_timeout); - ping_timeout += 20; } checkContext.latch.await(); classifyConnFails(connectivityMap, _checkSpecs, rpcServer); diff --git a/configd/src/apps/sentinel/report-connectivity.cpp b/configd/src/apps/sentinel/report-connectivity.cpp index 8417384dda9..d059980aae9 100644 --- a/configd/src/apps/sentinel/report-connectivity.cpp +++ b/configd/src/apps/sentinel/report-connectivity.cpp @@ -22,9 +22,9 @@ ReportConnectivity::ReportConnectivity(FRT_RPCRequest *req, int timeout_ms, FRT_ auto map = Connectivity::specsFrom(cfg.value()); LOG(debug, "making connectivity report for %zd peers", map.size()); _remaining = map.size(); + timeout_ms += 50 * map.size(); for (const auto & [ hostname, port ] : map) { _checks.emplace_back(std::make_unique<PeerCheck>(*this, hostname, port, orb, timeout_ms)); - timeout_ms += 20; } } else { _parentRequest->SetError(FRTE_RPC_METHOD_FAILED, "failed getting model config"); |