-
Notifications
You must be signed in to change notification settings - Fork 254
feat(cluster): Impl VSR view_change
#2546
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
view_changeview_change
| pub checksum_padding: u128, | ||
| pub checksum_body: u128, | ||
| pub checksum_body_padding: u128, | ||
| pub nonce_reserved: u128, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We are not going to be using thatr nonce, get rid of it from all of the view change headers.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
| /// The view number when this replica's status was last normal. | ||
| /// This is the key field for log selection: the replica with the | ||
| /// highest log_view has the most authoritative log. | ||
| pub log_view: u32, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We won't need this field for now, get rid of it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
From my understanding of VSR-revisited paper, log_view is essential for correctness of consensus. Its called v' in the paper. Its used for correct log selection during view changes. The paper states: "selects as the new log the one contained in the message with the largest v'". Without it, we cannot correctly determine which replica's log is authoritative, which can lead to loss of committed operations.
| self.replica_count | ||
| } | ||
|
|
||
| pub fn log_view(&self) -> u32 { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lets remove log_view from the VsrConsensus struct
|
I've left a few comments for now, will have probably some more, but we have to start thinking how will the |
Implemented
view_changefrom VSR-revisited paper.