Persist partition map history to system keys for recovery#13283
Open
akankshamahajan15 wants to merge 2 commits into
Open
Persist partition map history to system keys for recovery#13283akankshamahajan15 wants to merge 2 commits into
akankshamahajan15 wants to merge 2 commits into
Conversation
Contributor
Result of foundationdb-pr-clang-ide on Linux RHEL 9
|
Contributor
Result of foundationdb-pr-macos-m1 on macOS Ventura 13.x
|
Contributor
Result of foundationdb-pr-clang-arm on Linux CentOS 7
|
Contributor
Result of foundationdb-pr-clang on Linux RHEL 9
|
Contributor
Result of foundationdb-pr on Linux RHEL 9
|
Contributor
Result of foundationdb-pr-cluster-tests on Linux RHEL 9
|
Contributor
Result of foundationdb-pr-macos on macOS Ventura 13.x
|
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a persistence + recovery read path for backup range-partitioned partition maps by storing per-(epoch, version) PartitionMap entries in system keys, enabling old-epoch catch-up backup workers to route mutations correctly after recovery.
Changes:
- Introduces
\xff\x02/backupPartitionmap/[epoch][version]system-key encoding helpers and range helpers. - Implements a write path (
persistPartitionMapToSS) for current-epoch workers and a read path (loadPartitionMapHistoryFromSS) for catch-up workers. - Refactors range-partitioned backup worker lifecycle to monitor log system updates in a dedicated actor and to support graceful shutdown on
worker_removed.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| fdbserver/core/include/fdbserver/core/BackupPartitionMap.h | Adds PartitionMapHistory type alias and modernizes typedefs. |
| fdbserver/backupworker/BackupWorkerRangePartitioned.cpp | Persists partition map history to SS; reads it for catch-up workers; refactors readiness/shutdown/logsystem monitoring. |
| fdbserver/backupworker/BackupWorker.cpp | Removes unused fields from VersionedMessage / BackupData. |
| fdbclient/SystemData.cpp | Implements key/range encode/decode helpers for partition map history system keys. |
| fdbclient/include/fdbclient/SystemData.h | Declares the new system-key range + helper APIs. |
| fdbclient/FileBackupAgent.cpp | Avoids watching allWorkerStarted for range-partitioned log backups (not set by those workers). |
597c09f to
c3e43f9
Compare
Contributor
Result of foundationdb-pr-macos on macOS Ventura 13.x
|
Contributor
Result of foundationdb-pr-clang-ide on Linux RHEL 9
|
Contributor
Result of foundationdb-pr-clang on Linux RHEL 9
|
Contributor
Result of foundationdb-pr-clang-arm on Linux CentOS 7
|
Contributor
Result of foundationdb-pr on Linux RHEL 9
|
Contributor
Result of foundationdb-pr-cluster-tests on Linux RHEL 9
|
Contributor
Result of foundationdb-pr-macos-m1 on macOS Ventura 13.x
|
c3e43f9 to
fad5f35
Compare
Contributor
Result of foundationdb-pr-macos-m1 on macOS Ventura 13.x
|
Contributor
Result of foundationdb-pr-macos on macOS Ventura 13.x
|
Contributor
Result of foundationdb-pr-clang-ide on Linux RHEL 9
|
Contributor
Result of foundationdb-pr on Linux RHEL 9
|
Contributor
Result of foundationdb-pr-clang-arm on Linux CentOS 7
|
Contributor
Result of foundationdb-pr-clang on Linux RHEL 9
|
Contributor
Result of foundationdb-pr-cluster-tests on Linux RHEL 9
|
Contributor
Result of foundationdb-pr-macos-m1 on macOS Ventura 13.x
|
Contributor
Result of foundationdb-pr-macos on macOS Ventura 13.x
|
Contributor
Result of foundationdb-pr-clang-ide on Linux RHEL 9
|
Contributor
Result of foundationdb-pr-clang-arm on Linux CentOS 7
|
Contributor
Result of foundationdb-pr-clang on Linux RHEL 9
|
Contributor
Result of foundationdb-pr on Linux RHEL 9
|
Contributor
Result of foundationdb-pr-cluster-tests on Linux RHEL 9
|
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 PR adds the persistence and read path for partition map history on storage servers, so catch-up workers during recovery can route old-epoch mutations correctly.
persistPartitionMapToSS: idempotent write called by current-epoch workers when they receive a new partition map. PartitionMap is persisted to both S3 and SS.TODO: In next PR:
requires reading multiple history entries and switching maps at the version boundary.
Dependencies
This PR depends on #13245.
This PR includes all changes from #13245 plus additions on top.