Add ability for historicals to clone an existing historical#17863
Merged
kfaraz merged 26 commits intoapache:masterfrom Apr 9, 2025
Merged
Add ability for historicals to clone an existing historical#17863kfaraz merged 26 commits intoapache:masterfrom
kfaraz merged 26 commits intoapache:masterfrom
Conversation
kfaraz
reviewed
Apr 4, 2025
Contributor
kfaraz
left a comment
There was a problem hiding this comment.
Overall, looks good to me. Left some initial feedback.
kfaraz
reviewed
Apr 4, 2025
Contributor
kfaraz
left a comment
There was a problem hiding this comment.
Thanks for the sim tests, @adarshsanjeev !
I have left some final comments.
Contributor
|
@adarshsanjeev , please update the title and the description of the PR too. |
Contributor
|
Thanks for the detailed description, @adarshsanjeev ! |
kfaraz
reviewed
Apr 7, 2025
Contributor
kfaraz
left a comment
There was a problem hiding this comment.
@adarshsanjeev , found a couple of things that I had originally missed. Please let me know what you think.
kfaraz
reviewed
Apr 8, 2025
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.
Description
Add the ability for Historicals to "clone" another existing Historicals, copying the segments they serve.
This would be useful for a case like rolling updates, where the goal is to launch a new historical as replacement for a currently existing one.
Sample config:
The above config causes
historicalAto be considered as an "unmanaged" node by the coordinator. This means that the node:Coordinator manages
historicalBas normal. However, any segment assignment or drop tohistoricalBis mirrored tohistoricalA.If the mapping is removed, the coordinator once again manages
historicalAduring its duty cycles.Release notes
cloneServers, containing a map from target Historical server to source Historical server which should be cloned by the target. The target Historical does not participate in regular segment assignment or balancing. Instead, the Coordinator mirrors any segment assignment made to the source Historical onto the target Historical, so that the target becomes an exact copy of the source. Segments on the target Historical do not count towards replica counts either. If the source disappears, the target remains in the last known state of the source server until removed from the cloneServers.Testing
This PR has: