Remove parallel restore feature#12107
Closed
jzhou77 wants to merge 2 commits into
Closed
Conversation
This feature is removed and we'll use bulk loading mechanism for restoring a cluster in the future.
20250425-051235-jzhou-7392bc7100f7123f
5 tasks
gxglass
added a commit
that referenced
this pull request
Apr 1, 2026
This parallel restore feature has been slated for removal for at least a year. This PR is closely based on earlier PR #12107. This blog post explains some of the problems with the parallel restore feature: https://medium.com/@jingyuzhou/why-foundationdb-restore-is-slow-and-what-can-be-done-about-it-e73a821fdd33 As far as large feature removal changes go, this one is very straightforward, with most relevant files and test cases simply being deleted. There is one knob rename where storageserver.actor.cpp was using a knob with FASTRESTORE in the name. Other than that, changes to shared files mainly involve removing fastrestore-specific CLI and role support. In progress: 20260330-222511-gglass-5ee0142213471b70 compressed=True data_size=35343375 duration=4611964 ended=100000 fail=1 fail_fast=1000 max_runs=100000 pass=99999 priority=100 remaining=0 runtime=0:58:23 sanity=False started=100000 stopped=20260330-232334 submitted=20260330-222511 timeout=5400 username=gglass The one failure was in SwizzledCycleTest.toml with too many lines of output and a timeout. I kind of suspect it's unrelated but haven't looked further. * Remove parallel restore feature. This is based on earlier PR 12107. Compiles but untested. * AI generated commit: ⏺ The fix restores a single if block that was accidentally deleted when removing the FASTRESTORE_TOOL code: if (!restoreSystemKeys && !restoreUserKeys && backupKeys.empty()) { addDefaultBackupRanges(backupKeys); } When no explicit key ranges are specified on the command line and neither --user-data nor --system-metadata flags are set, this populates backupKeys with the default backup ranges (essentially all user data). Without it, backupKeys stays empty and hits the ASSERT(!backupRanges.empty()) in submitBackup(). * Remove a believed-to-be-dead code path, and update .gitignore * Remove duplicate definition of restoreRequestDoneKey
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This feature is removed and we'll use bulk loading mechanism for restoring a cluster in the future.
Put this in draft mode until new backup is fully qualified.
20250425-051235-jzhou-7392bc7100f7123f compressed=True data_size=35263669 duration=5404578 ended=100000 fail=2 fail_fast=10 max_runs=100000 pass=99998 priority=100 remaining=0 runtime=0:54:19 sanity=False started=100000 stopped=20250425-060654 submitted=20250425-051235 timeout=5400 username=jzhou
2 failures are unrelated:
Code-Reviewer Section
The general pull request guidelines can be found here.
Please check each of the following things and check all boxes before accepting a PR.
For Release-Branches
If this PR is made against a release-branch, please also check the following:
release-branchormainif this is the youngest branch)