From 574e88ba8ecb1fd3a8d294b706a79b6f914d7658 Mon Sep 17 00:00:00 2001 From: Evan Tschannen Date: Thu, 20 Feb 2020 13:46:22 -0800 Subject: [PATCH] updateGoodRemoteRecruitmentTime was unnecessary because the only way findRemoteWorkers would return would be after a new server has joined which already resets goodRemoteRecruitmentTime --- fdbserver/ClusterController.actor.cpp | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/fdbserver/ClusterController.actor.cpp b/fdbserver/ClusterController.actor.cpp index 77bbb07c37..fe8c010ede 100644 --- a/fdbserver/ClusterController.actor.cpp +++ b/fdbserver/ClusterController.actor.cpp @@ -621,11 +621,6 @@ public: } RecruitRemoteFromConfigurationReply findRemoteWorkersForConfiguration( RecruitRemoteFromConfigurationRequest const& req ) { - if(!updateGoodRemoteRecruitmentTime) { - updateGoodRemoteRecruitmentTime = true; - goodRemoteRecruitmentTime = lowPriorityDelay(SERVER_KNOBS->WAIT_FOR_GOOD_REMOTE_RECRUITMENT_DELAY); - } - RecruitRemoteFromConfigurationReply result; std::map< Optional>, int> id_used; @@ -1243,7 +1238,6 @@ public: double startTime; Future goodRecruitmentTime; Future goodRemoteRecruitmentTime; - bool updateGoodRemoteRecruitmentTime; Version datacenterVersionDifference; bool versionDifferenceUpdated; PromiseStream> addActor; @@ -1268,8 +1262,8 @@ public: ClusterControllerData( ClusterControllerFullInterface const& ccInterface, LocalityData const& locality ) : clusterControllerProcessId(locality.processId()), clusterControllerDcId(locality.dcId()), id(ccInterface.id()), ac(false), outstandingRequestChecker(Void()), outstandingRemoteRequestChecker(Void()), gotProcessClasses(false), - gotFullyRecoveredConfig(false), startTime(now()), goodRecruitmentTime(Never()), goodRemoteRecruitmentTime(Never()), - updateGoodRemoteRecruitmentTime(false), datacenterVersionDifference(0), + gotFullyRecoveredConfig(false), startTime(now()), goodRecruitmentTime(Never()), + goodRemoteRecruitmentTime(Never()), datacenterVersionDifference(0), versionDifferenceUpdated(false), recruitingDistributor(false), recruitRatekeeper(false), clusterControllerMetrics("ClusterController", id.toString()), openDatabaseRequests("OpenDatabaseRequests", clusterControllerMetrics), @@ -1326,7 +1320,6 @@ ACTOR Future clusterWatchDatabase( ClusterControllerData* cluster, Cluster rmq.lifetime = db->serverInfo->get().read().masterLifetime; rmq.forceRecovery = db->forceRecovery; - cluster->updateGoodRemoteRecruitmentTime = false; cluster->masterProcessId = masterWorker.worker.interf.locality.processId(); cluster->db.unfinishedRecoveries++; state Future> fNewMaster = masterWorker.worker.interf.master.tryGetReply( rmq ); @@ -1616,14 +1609,10 @@ ACTOR Future doCheckOutstandingRequests( ClusterControllerData* self ) { ACTOR Future doCheckOutstandingRemoteRequests( ClusterControllerData* self ) { try { wait( delay(SERVER_KNOBS->CHECK_OUTSTANDING_INTERVAL) ); - while( !self->goodRemoteRecruitmentTime.isReady() && self->updateGoodRemoteRecruitmentTime ) { + while( !self->goodRemoteRecruitmentTime.isReady() ) { wait(self->goodRemoteRecruitmentTime); } - if(!self->updateGoodRemoteRecruitmentTime) { - return Void(); - } - checkOutstandingRemoteRecruitmentRequests( self ); } catch( Error &e ) { if(e.code() != error_code_no_more_servers) { @@ -1634,7 +1623,7 @@ ACTOR Future doCheckOutstandingRemoteRequests( ClusterControllerData* self } void checkOutstandingRequests( ClusterControllerData* self ) { - if( self->outstandingRemoteRequestChecker.isReady() && self->updateGoodRemoteRecruitmentTime) { + if( self->outstandingRemoteRequestChecker.isReady() ) { self->outstandingRemoteRequestChecker = doCheckOutstandingRemoteRequests(self); } @@ -2033,9 +2022,7 @@ void registerWorker( RegisterWorkerRequest req, ClusterControllerData *self ) { if(info == self->id_worker.end()) { TraceEvent("ClusterControllerActualWorkers", self->id).detail("WorkerId",w.id()).detail("ProcessId", w.locality.processId()).detail("ZoneId", w.locality.zoneId()).detail("DataHall", w.locality.dataHallId()).detail("PClass", req.processClass.toString()).detail("Workers", self->id_worker.size()); self->goodRecruitmentTime = lowPriorityDelay(SERVER_KNOBS->WAIT_FOR_GOOD_RECRUITMENT_DELAY); - if(self->updateGoodRemoteRecruitmentTime) { - self->goodRemoteRecruitmentTime = lowPriorityDelay(SERVER_KNOBS->WAIT_FOR_GOOD_REMOTE_RECRUITMENT_DELAY); - } + self->goodRemoteRecruitmentTime = lowPriorityDelay(SERVER_KNOBS->WAIT_FOR_GOOD_REMOTE_RECRUITMENT_DELAY); } else { TraceEvent("ClusterControllerWorkerAlreadyRegistered", self->id).suppressFor(1.0).detail("WorkerId",w.id()).detail("ProcessId", w.locality.processId()).detail("ZoneId", w.locality.zoneId()).detail("DataHall", w.locality.dataHallId()).detail("PClass", req.processClass.toString()).detail("Workers", self->id_worker.size()); }