FastRestore:Deduplicate backup range and log files
This commit is contained in:
parent
4fbbff8ccd
commit
5893f66ced
|
@ -599,6 +599,8 @@ ACTOR static Future<Void> collectBackupFiles(Reference<IBackupContainer> bc, std
|
||||||
ASSERT(rangeFiles->empty());
|
ASSERT(rangeFiles->empty());
|
||||||
ASSERT(logFiles->empty());
|
ASSERT(logFiles->empty());
|
||||||
|
|
||||||
|
std::set<RestoreFileFR> uniqueRangeFiles;
|
||||||
|
std::set<RestoreFileFR> uniqueLogFiles;
|
||||||
for (const RangeFile& f : restorable.get().ranges) {
|
for (const RangeFile& f : restorable.get().ranges) {
|
||||||
TraceEvent("FastRestore").detail("RangeFile", f.toString());
|
TraceEvent("FastRestore").detail("RangeFile", f.toString());
|
||||||
if (f.fileSize <= 0) {
|
if (f.fileSize <= 0) {
|
||||||
|
@ -606,7 +608,7 @@ ACTOR static Future<Void> collectBackupFiles(Reference<IBackupContainer> bc, std
|
||||||
}
|
}
|
||||||
RestoreFileFR file(f.version, f.fileName, true, f.blockSize, f.fileSize, f.version, f.version);
|
RestoreFileFR file(f.version, f.fileName, true, f.blockSize, f.fileSize, f.version, f.version);
|
||||||
TraceEvent("FastRestore").detail("RangeFileFR", file.toString());
|
TraceEvent("FastRestore").detail("RangeFileFR", file.toString());
|
||||||
rangeFiles->push_back(file);
|
uniqueRangeFiles.insert(file);
|
||||||
}
|
}
|
||||||
for (const LogFile& f : restorable.get().logs) {
|
for (const LogFile& f : restorable.get().logs) {
|
||||||
TraceEvent("FastRestore").detail("LogFile", f.toString());
|
TraceEvent("FastRestore").detail("LogFile", f.toString());
|
||||||
|
@ -616,7 +618,11 @@ ACTOR static Future<Void> collectBackupFiles(Reference<IBackupContainer> bc, std
|
||||||
RestoreFileFR file(f.beginVersion, f.fileName, false, f.blockSize, f.fileSize, f.endVersion, f.beginVersion);
|
RestoreFileFR file(f.beginVersion, f.fileName, false, f.blockSize, f.fileSize, f.endVersion, f.beginVersion);
|
||||||
TraceEvent("FastRestore").detail("LogFileFR", file.toString());
|
TraceEvent("FastRestore").detail("LogFileFR", file.toString());
|
||||||
logFiles->push_back(file);
|
logFiles->push_back(file);
|
||||||
|
uniqueLogFiles.insert(file);
|
||||||
}
|
}
|
||||||
|
// Assign unique range files and log files to output
|
||||||
|
rangeFiles->assign(uniqueRangeFiles.begin(), uniqueRangeFiles.end());
|
||||||
|
logFiles->assign(uniqueLogFiles.begin(), uniqueLogFiles.end());
|
||||||
|
|
||||||
return Void();
|
return Void();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue