ratekeeper needs to be recruited for proxies to make progress, so if one has not registered with the cluster controller by the time we are accepting commits, recruit a new one
This commit is contained in:
parent
f426d732ea
commit
d6ad027d37
|
@ -2510,18 +2510,8 @@ ACTOR Future<DataDistributorInterface> startDataDistributor( ClusterControllerDa
|
||||||
}
|
}
|
||||||
|
|
||||||
ACTOR Future<Void> monitorDataDistributor(ClusterControllerData *self) {
|
ACTOR Future<Void> monitorDataDistributor(ClusterControllerData *self) {
|
||||||
state Future<Void> initialDelay = delay(SERVER_KNOBS->WAIT_FOR_DISTRIBUTOR_JOIN_DELAY);
|
while(self->db.serverInfo->get().recoveryState < RecoveryState::ACCEPTING_COMMITS) {
|
||||||
|
wait(self->db.serverInfo->onChange());
|
||||||
// wait for a while to see if existing data distributor will join.
|
|
||||||
loop choose {
|
|
||||||
when ( wait(initialDelay) ) { break; }
|
|
||||||
when ( wait(self->db.serverInfo->onChange()) ) { // Rejoins via worker registration
|
|
||||||
if ( self->db.serverInfo->get().distributor.present() ) {
|
|
||||||
TraceEvent("CC_InfoChange", self->id)
|
|
||||||
.detail("DDID", self->db.serverInfo->get().distributor.get().id());
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
|
@ -2595,18 +2585,8 @@ ACTOR Future<Void> startRatekeeper(ClusterControllerData *self) {
|
||||||
}
|
}
|
||||||
|
|
||||||
ACTOR Future<Void> monitorRatekeeper(ClusterControllerData *self) {
|
ACTOR Future<Void> monitorRatekeeper(ClusterControllerData *self) {
|
||||||
state Future<Void> initialDelay = delay(SERVER_KNOBS->WAIT_FOR_RATEKEEPER_JOIN_DELAY);
|
while(self->db.serverInfo->get().recoveryState < RecoveryState::ACCEPTING_COMMITS) {
|
||||||
|
wait(self->db.serverInfo->onChange());
|
||||||
// wait for a while to see if an existing ratekeeper will join.
|
|
||||||
loop choose {
|
|
||||||
when ( wait(initialDelay) ) { break; }
|
|
||||||
when ( wait(self->db.serverInfo->onChange()) ) { // Rejoins via worker registration
|
|
||||||
if ( self->db.serverInfo->get().ratekeeper.present() ) {
|
|
||||||
TraceEvent("ClusterController_GotRateKeeper", self->id)
|
|
||||||
.detail("RKID", self->db.serverInfo->get().ratekeeper.get().id());
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
|
|
Loading…
Reference in New Issue