-
Notifications
You must be signed in to change notification settings - Fork 636
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
Support block replayability with enabled flat storage #8741
Comments
WIth in-memory trie implemented, we have an option to implement which shouldn't consume crazy amount of time. |
On the "Recreate partial FS" idea, can we run these transactions once, mark all the storage that is needed to run them, populate partial FS, and then execute them again for real? |
Configuration removed in #10490 can be helpful to replay chunks without having flat storage at all. |
It was broken after #10961 because format of command changed. Fixing the format. Note that it is not a complete solution because of #8741, but the issue may occur only if charged costs are complicated, which is unlikely the case for the test. Nayduck https://nayduck.nearone.org/#/run/50 Co-authored-by: Longarithm <the.aleksandr.logunov@gmail.com>
With flat storage enabled, we currently don't support state-viewer apply range command. See original discussions here and here.
So far we know that:
So this is considered lower priority than #7327. However, let's provide several options to solve it.
Recreate FS
Just create FS from scratch, using trie. @mm-near confirmed once that it takes < 1h on rpc nodes.
Concerns
Recreate "partial" FS
Some kind of hack: store all trie keys ever read for each specific block; if we need to replay a block, create "partial" FS including only these keys and execute a block, no issue should occur.
Concerns
Fallback to Trie
Fallback to Trie makes a lot of sense; however, it would spoil chunk cache. But it can be solved if we specifically disable chunk cache during storage_read, and other storage ops when we use FS there as well.
Concerns
FS rollback
If block to replay is not far away, we can rollback flat storage, until its head is the same as desired block.
Concerns
The text was updated successfully, but these errors were encountered: