MCPcopy Create free account
hub / github.com/apple/foundationdb / _execute

Method _execute

fdbclient/FileBackupAgent.actor.cpp:3382–3424  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3380 } Params;
3381
3382 ACTOR static Future<Void> _execute(Database cx,
3383 Reference<TaskBucket> taskBucket,
3384 Reference<FutureBucket> futureBucket,
3385 Reference<Task> task) {
3386 state RestoreConfig restore(task);
3387
3388 state RestoreFile logFile = Params.inputFile().get(task);
3389 state int64_t readOffset = Params.readOffset().get(task);
3390 state int64_t readLen = Params.readLen().get(task);
3391
3392 TraceEvent("FileRestoreLogStart")
3393 .suppressFor(60)
3394 .detail("RestoreUID", restore.getUid())
3395 .detail("FileName", logFile.fileName)
3396 .detail("FileBeginVersion", logFile.version)
3397 .detail("FileEndVersion", logFile.endVersion)
3398 .detail("FileSize", logFile.fileSize)
3399 .detail("ReadOffset", readOffset)
3400 .detail("ReadLen", readLen)
3401 .detail("TaskInstance", THIS_ADDR);
3402
3403 state Reference<ReadYourWritesTransaction> tr(new ReadYourWritesTransaction(cx));
3404 state Reference<IBackupContainer> bc;
3405 state std::vector<KeyRange> ranges;
3406
3407 loop {
3408 try {
3409 tr->setOption(FDBTransactionOptions::ACCESS_SYSTEM_KEYS);
3410 tr->setOption(FDBTransactionOptions::LOCK_AWARE);
3411
3412 Reference<IBackupContainer> _bc = wait(restore.sourceContainer().getOrThrow(tr));
3413 bc = _bc;
3414
3415 wait(store(ranges, restore.getRestoreRangesOrDefault(tr)));
3416
3417 wait(checkTaskVersion(tr->getDatabase(), task, name, version));
3418 wait(taskBucket->keepRunning(tr, task));
3419
3420 break;
3421 } catch (Error& e) {
3422 wait(tr->onError(e));
3423 }
3424 }
3425
3426 state Key mutationLogPrefix = restore.mutationLogPrefix();
3427 state Reference<IAsyncFile> inFile = wait(bc->readFile(logFile.fileName));

Callers

nothing calls this directly

Calls 15

TraceEventClass · 0.85
storeFunction · 0.85
inputFileMethod · 0.80
readOffsetMethod · 0.80
readLenMethod · 0.80
detailMethod · 0.80
keepRunningMethod · 0.80
getMethod · 0.65
onErrorMethod · 0.65
setOptionMethod · 0.65
getDatabaseMethod · 0.65
getUidMethod · 0.45

Tested by

no test coverage detected