mirror of
https://github.com/apple/foundationdb.git
synced 2025-05-16 02:42:23 +08:00
revert systemkey clear in recovery tx and backupagent on restart, moved to workload specifically
This commit is contained in:
parent
e277ce81d5
commit
d82dccd2ad
@ -642,7 +642,7 @@ ACTOR Future<Void> restartSimulatedSystem(vector<Future<Void>>* systemActors, st
|
|||||||
// SOMEDAY: parse backup agent from test file
|
// SOMEDAY: parse backup agent from test file
|
||||||
systemActors->push_back(reportErrors(
|
systemActors->push_back(reportErrors(
|
||||||
simulatedMachine(conn, ipAddrs, usingSSL, localities, processClass, baseFolder, true,
|
simulatedMachine(conn, ipAddrs, usingSSL, localities, processClass, baseFolder, true,
|
||||||
i == useSeedForMachine, AgentAddition,
|
i == useSeedForMachine, enableExtraDB ? AgentAddition : AgentNone,
|
||||||
usingSSL && (listenersPerProcess == 1 || processClass == ProcessClass::TesterClass),
|
usingSSL && (listenersPerProcess == 1 || processClass == ProcessClass::TesterClass),
|
||||||
whitelistBinPaths),
|
whitelistBinPaths),
|
||||||
processClass == ProcessClass::TesterClass ? "SimulatedTesterMachine" : "SimulatedMachine"));
|
processClass == ProcessClass::TesterClass ? "SimulatedTesterMachine" : "SimulatedMachine"));
|
||||||
|
@ -1580,7 +1580,6 @@ ACTOR Future<Void> masterCore( Reference<MasterData> self ) {
|
|||||||
tr.set(recoveryCommitRequest.arena, snapshotEndVersionKey, (bw << self->lastEpochEnd).toValue());
|
tr.set(recoveryCommitRequest.arena, snapshotEndVersionKey, (bw << self->lastEpochEnd).toValue());
|
||||||
// Clear the key so multiple recoveries will not overwrite the first version recorded
|
// Clear the key so multiple recoveries will not overwrite the first version recorded
|
||||||
tr.clear(recoveryCommitRequest.arena, singleKeyRange(writeRecoveryKey));
|
tr.clear(recoveryCommitRequest.arena, singleKeyRange(writeRecoveryKey));
|
||||||
tr.clear(recoveryCommitRequest.arena, fileBackupPrefixRange);
|
|
||||||
}
|
}
|
||||||
if(self->forceRecovery) {
|
if(self->forceRecovery) {
|
||||||
BinaryWriter bw(Unversioned());
|
BinaryWriter bw(Unversioned());
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "fdbclient/FDBTypes.h"
|
#include "fdbclient/FDBTypes.h"
|
||||||
|
#include "fdbclient/Knobs.h"
|
||||||
#include "fdbclient/SystemData.h"
|
#include "fdbclient/SystemData.h"
|
||||||
#include "fdbclient/ReadYourWrites.h"
|
#include "fdbclient/ReadYourWrites.h"
|
||||||
#include "fdbrpc/simulator.h"
|
#include "fdbrpc/simulator.h"
|
||||||
@ -40,6 +41,10 @@ struct IncrementalBackupWorkload : TestWorkload {
|
|||||||
int waitRetries;
|
int waitRetries;
|
||||||
bool stopBackup;
|
bool stopBackup;
|
||||||
bool checkBeginVersion;
|
bool checkBeginVersion;
|
||||||
|
bool manualBackupAgentStart;
|
||||||
|
|
||||||
|
double backupPollDelay = 1.0 / CLIENT_KNOBS->BACKUP_AGGREGATE_POLL_RATE;
|
||||||
|
std::vector<Future<Void>> agentFutures;
|
||||||
|
|
||||||
IncrementalBackupWorkload(WorkloadContext const& wcx) : TestWorkload(wcx) {
|
IncrementalBackupWorkload(WorkloadContext const& wcx) : TestWorkload(wcx) {
|
||||||
backupDir = getOption(options, LiteralStringRef("backupDir"), LiteralStringRef("file://simfdb/backups/"));
|
backupDir = getOption(options, LiteralStringRef("backupDir"), LiteralStringRef("file://simfdb/backups/"));
|
||||||
@ -50,6 +55,7 @@ struct IncrementalBackupWorkload : TestWorkload {
|
|||||||
waitRetries = getOption(options, LiteralStringRef("waitRetries"), -1);
|
waitRetries = getOption(options, LiteralStringRef("waitRetries"), -1);
|
||||||
stopBackup = getOption(options, LiteralStringRef("stopBackup"), false);
|
stopBackup = getOption(options, LiteralStringRef("stopBackup"), false);
|
||||||
checkBeginVersion = getOption(options, LiteralStringRef("checkBeginVersion"), false);
|
checkBeginVersion = getOption(options, LiteralStringRef("checkBeginVersion"), false);
|
||||||
|
manualBackupAgentStart = getOption(options, LiteralStringRef("manualBackupAgentStart"), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string description() const override { return "IncrementalBackup"; }
|
std::string description() const override { return "IncrementalBackup"; }
|
||||||
@ -151,6 +157,24 @@ struct IncrementalBackupWorkload : TestWorkload {
|
|||||||
TraceEvent("IBackupSubmitSuccess");
|
TraceEvent("IBackupSubmitSuccess");
|
||||||
}
|
}
|
||||||
if (self->restoreOnly) {
|
if (self->restoreOnly) {
|
||||||
|
if (self->manualBackupAgentStart) {
|
||||||
|
state Transaction earlyTr(cx);
|
||||||
|
// Clear Relevant System Keys
|
||||||
|
loop {
|
||||||
|
try {
|
||||||
|
earlyTr.setOption(FDBTransactionOptions::ACCESS_SYSTEM_KEYS);
|
||||||
|
earlyTr.setOption(FDBTransactionOptions::LOCK_AWARE);
|
||||||
|
earlyTr.clear(fileBackupPrefixRange);
|
||||||
|
wait(earlyTr.commit());
|
||||||
|
break;
|
||||||
|
} catch (Error& e) {
|
||||||
|
wait(earlyTr.onError(e));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
TraceEvent("IBackupRunBackupAgent");
|
||||||
|
self->agentFutures.push_back(
|
||||||
|
self->backupAgent.run(cx, &self->backupPollDelay, CLIENT_KNOBS->SIM_BACKUP_TASKS_PER_AGENT));
|
||||||
|
}
|
||||||
state Reference<IBackupContainer> backupContainer;
|
state Reference<IBackupContainer> backupContainer;
|
||||||
state UID backupUID;
|
state UID backupUID;
|
||||||
state Version beginVersion = invalidVersion;
|
state Version beginVersion = invalidVersion;
|
||||||
|
@ -10,6 +10,7 @@ clearAfterTest = false
|
|||||||
tag = 'default'
|
tag = 'default'
|
||||||
restoreOnly = true
|
restoreOnly = true
|
||||||
checkBeginVersion = true
|
checkBeginVersion = true
|
||||||
|
manualBackupAgentStart = true
|
||||||
|
|
||||||
[[test]]
|
[[test]]
|
||||||
testTitle = 'VerifyCycleAndAtomics'
|
testTitle = 'VerifyCycleAndAtomics'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user