-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
speed up rollback command #13744
Comments
I think there are some edge cases to rollback that aren't documented or tested as well. I think the feature needs to be redone entirely |
@yihuang do you know where the major bottlenecks are? Is it IAVL pruning? |
I didn't do timing, but I guess the traversal |
I misundetstood, orphan records are there no matter archive node or not, so this one is heavy too, because it iterate all orphan records. |
|
Rollback must be well coordinated. At Umee we had a problem with rollback: the validators didn't cooperate well. Some joined later and couldn't sync with a network because they couldn't validate the blocks. Tendermint removed the last app state, hence couldn't get the validator set to validate a new committed block. It worked for signing, but not for validating. I was describing this problem in Discord, and was suppose to make an issue. However I forgot about it and created it right now: tendermint/tendermint#9715 TL;DR: we need to look back again at the design of the rollback command. |
Also, for a related note, in |
@tac0turtle why thumbs down? I think it's a good observation to use DB native features if possible, and critical for performance, rather than doing it "naively". We were discussing this approach already 2.5 year ago with @erikgrinaker |
In our experiment with that snapshot design, the db size bloat pretty fast, because it's based on hard linking the sst files, there are lots of waste of disk space. |
Yeah, it's pretty dangerous for majority of validators to do rollback together, might risk halting the network. |
closing, merged in iavl: cosmos/iavl#636, it works best together with the lazy-iavl-loading. |
Summary
rollback command take hours to run.
Problem Definition
As a firefighting command, we hope it runs faster.
In practice, I find that the minimal thing we need to do a rollback is:
s/latest
So my question is:
rollback
command?Proposal
The text was updated successfully, but these errors were encountered: