Recruit backup workers for single region
Enable log router tags for single region, which are popped by backup workers. Need to add noop for backup workers if there is no active backups.
This commit is contained in:
parent
0e5f5b50f0
commit
56a2c37071
|
@ -917,6 +917,14 @@ public:
|
|||
result.resolvers.push_back(resolvers[i].interf);
|
||||
for(int i = 0; i < proxies.size(); i++)
|
||||
result.proxies.push_back(proxies[i].interf);
|
||||
|
||||
const int nBackup = std::max<int>(tlogs.size(), req.maxOldLogRouters);
|
||||
auto backupWorkers = getWorkersForRoleInDatacenter(dcId, ProcessClass::Backup, nBackup,
|
||||
req.configuration, id_used);
|
||||
std::transform(backupWorkers.begin(), backupWorkers.end(),
|
||||
std::back_inserter(result.backupWorkers),
|
||||
[](const WorkerDetails& w) { return w.interf; });
|
||||
|
||||
break;
|
||||
} else {
|
||||
if(fitness < bestFitness) {
|
||||
|
|
|
@ -326,9 +326,6 @@ struct TagPartitionedLogSystem : ILogSystem, ReferenceCounted<TagPartitionedLogS
|
|||
|
||||
for (int i = 1; i < lsConf.oldTLogs.size(); i++ ) {
|
||||
logSystem->oldLogData.emplace_back(lsConf.oldTLogs[i]);
|
||||
//TraceEvent("BWFromOldLSConf")
|
||||
// .detail("Epoch", logSystem->oldLogData.back().epoch)
|
||||
// .detail("Version", logSystem->oldLogData.back().epochEnd);
|
||||
}
|
||||
}
|
||||
logSystem->logSystemType = lsConf.logSystemType;
|
||||
|
@ -2142,14 +2139,18 @@ struct TagPartitionedLogSystem : ILogSystem, ReferenceCounted<TagPartitionedLogS
|
|||
logSystem->txsTags = configuration.tLogVersion >= TLogVersion::V4 ? recr.tLogs.size() : 0;
|
||||
oldLogSystem->recruitmentID = logSystem->recruitmentID;
|
||||
|
||||
logSystem->logRouterTags = recr.tLogs.size() * std::max<int>(1, configuration.desiredLogRouterCount / std::max<int>(1, recr.tLogs.size()));
|
||||
if(configuration.usableRegions > 1) {
|
||||
logSystem->logRouterTags = recr.tLogs.size() * std::max<int>(1, configuration.desiredLogRouterCount / std::max<int>(1,recr.tLogs.size()));
|
||||
logSystem->expectedLogSets++;
|
||||
logSystem->addPseudoLocality(tagLocalityLogRouterMapped);
|
||||
logSystem->addPseudoLocality(tagLocalityBackup);
|
||||
TraceEvent("AddPseudoLocality", logSystem->getDebugID())
|
||||
.detail("Locality1", "LogRouterMapped")
|
||||
.detail("Locality2", "Backup");
|
||||
} else {
|
||||
// Single region uses log router tag for backup workers.
|
||||
logSystem->addPseudoLocality(tagLocalityBackup);
|
||||
TraceEvent("AddPseudoLocality", logSystem->getDebugID()).detail("Locality", "Backup");
|
||||
}
|
||||
|
||||
logSystem->tLogs.emplace_back(new LogSet());
|
||||
|
@ -2208,9 +2209,6 @@ struct TagPartitionedLogSystem : ILogSystem, ReferenceCounted<TagPartitionedLogS
|
|||
logSystem->oldLogData[0].epoch = oldLogSystem->epoch;
|
||||
}
|
||||
logSystem->oldLogData.insert(logSystem->oldLogData.end(), oldLogSystem->oldLogData.begin(), oldLogSystem->oldLogData.end());
|
||||
//for (const auto& old : logSystem->oldLogData) {
|
||||
// TraceEvent("BWEndVersion").detail("Epoch", old.epoch).detail("Version", old.epochEnd);
|
||||
//}
|
||||
|
||||
logSystem->tLogs[0]->startVersion = oldLogSystem->knownCommittedVersion + 1;
|
||||
state int lockNum = 0;
|
||||
|
|
Loading…
Reference in New Issue