raft: open db on service.Open instead on apply #4878
Merged
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.
What's being changed:
this PR avoid reopening the db with every apply and instead does it at the beginning when we start newRaft
this pr is part of series of PRs
#4876
#4878
Why: we ended up in situation we made assumption that the database has to be updated before schema and that caused some confusion.
How:
Old approach:
open database at the beginning only if the node was fresh
open the db again on apply command
separate between commands to be applied on db or schema only based on newAppliedIndex <= initialLastAppliedIndex
New approach:
always open database at the beginning of raft init if there is something to catch up on
always updating both database and schema at the same time by applying schema 1st then the database, so that schema has the validation logic to protect any updates from going to the database
chaos pipeline
Review checklist