Skip to content

Commit

Permalink
nested loop keyword seems to cause problems
Browse files Browse the repository at this point in the history
now it has DataDistributionActive for quiet database
  • Loading branch information
hfu94 committed Nov 27, 2023
1 parent b076ce0 commit 6b0d8b5
Showing 1 changed file with 5 additions and 11 deletions.
16 changes: 5 additions & 11 deletions fdbserver/BackupWorker.actor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -530,27 +530,21 @@ ACTOR Future<bool> monitorBackupStartedKeyChanges(BackupData* self, bool present
uidVersions = decodeBackupStartedValue(value.get());
state TraceEvent e("BackupWorkerGotStartKey", self->myId);
state int i = 1;
state int size = uidVersions.size();
loop {
UID uid = uidVersions[i].first;
Version version = uidVersions[i].second;
for (auto [uid, version] : uidVersions) {
e.detail(format("BackupID%d", i), uid).detail(format("Version%d", i), version);
i++;
if (shouldExit && version < self->endVersion.get()) {
shouldExit = false;
}
BackupConfig config(uid);
// Optional<Version> taskStarted = wait(config.allWorkerStarted().get(tr)); this does not compile
// transform the Value to Version, what's the best way?
Optional<Value> taskStarted = wait(tr.get(config.allWorkerStarted().key));
Version v = Tuple::unpack(taskStarted.get()).getInt(0);
if (taskStarted.present()) {
Version v = Tuple::unpack(taskStarted.get()).getInt(0);
TraceEvent("Hfu5TaskPresent").detail("V", v).detail("Saved", self->savedVersion).log();
self->savedVersion = std::max(self->savedVersion, v);
}
i++;
if (i == size) {
break;
}
}
self->exitEarly = shouldExit;
self->onBackupChanges(uidVersions);
Expand Down Expand Up @@ -600,9 +594,9 @@ ACTOR Future<Void> setBackupKeys(BackupData* self, std::map<UID, Version> savedL
wait(waitForAll(prevVersions) && waitForAll(allWorkersReady));

for (int i = 0; i < prevVersions.size(); i++) {
if (!allWorkersReady[i].get().present() || allWorkersReady[i].get().get() <= 0)
if (!allWorkersReady[i].get().present() || allWorkersReady[i].get().get() <= 0) {
continue;

}
const Version current = savedLogVersions[versionConfigs[i].getUid()];
if (prevVersions[i].get().present()) {
const Version prev = prevVersions[i].get().get();
Expand Down

0 comments on commit 6b0d8b5

Please sign in to comment.