Open xumengpanda opened 4 years ago
Suggestion from Steve:
Visibility improvement:
Each phase and sub-phase on each node should have the field: batchIndex
and nodeID
Restore tooling:
Hello! I'd like to do some performance testing of FastRestore and to compare it with another ways of database restoring on my environment. Is something in upstream ready for performance testing?
Hello! I'd like to do some performance testing of FastRestore and to compare it with another ways of database restoring on my environment. Is something in upstream ready for performance testing?
Hi, it is not ready yet. I tested in small cluster and waiting to test it in bigger cluster and different types of backups.
The first version of the performant restore will be released in FDB 6.3 as an experimental feature. It thus closes the issue https://github.com/apple/foundationdb/issues/1049.
The performant restore can still be further improved in various areas. This issue tracks the further improvements for the issue https://github.com/apple/foundationdb/issues/1049.
Note: Fault tolerance will be handled in a separate issue as a follow-up project.
Performance improvement
Memory saving improvement:
Robustness improvement
handleSendMutationVectorRequest
should not have any effect whenhandleApplyToDBRequest
starts;Visibility improvement:
status
reporting as existingfdbrestore status
does to report errors and status when the new restore is running;Code improvement
typeString[m.type]
to function that checks iftype
is valid;"/FastRestore/RestoreLoader/splitMutation"
after the new restore rolls out;getVersionSize()
speed can be improved if all log files whose endVersion is smaller thanperVersion
are pre-filtered out;splitMutation()
function. Try to re-use existing functions.std::map<Standalone<StringRef>, Standalone<StringRef>>* pMutationMap
, andstd::map<Standalone<StringRef>, uint32_t>* pMutationPartMap
;applierMutationsBuffer
andapplierVersionsBuffer
;tr.reset()
and remove unnecessary reset();Post PR #2908
[ ] Consider allowing empty files in version batches and validate the invariant
Invariant: The last vb endverion should be no smaller than targetVersion if the backup is restorable. Note that when computing version batches, raw backup files, including empty files, should be present for version continuity analysis.
; Add a comment for this.[ ] Change the
SevFRMutationInfo
TraceEvents todebugFRMutation()
so something similar that allows DBA to configure online which parsed mutations to dump into analysis tools, such as Splunk, for analyses. One use case is that user may use the new restore system to dump the backup data to Splunk and use Splunk to query the mutations. <-- wait for PR https://github.com/apple/foundationdb/pull/2873 and add something similar.