-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
Make validator startup aware of Incremental Snapshots #19297
Labels
Comments
brooksprumo
added a commit
to brooksprumo/solana
that referenced
this issue
Sep 1, 2021
Now that the background services are aware of incremental snapshots, they need (1) the corect last full snapshot slot in order to clean accounts correctly, and (2) all expected full snapshots to be available when created an incremental snapshot based on them. This commit fixes startup so both requirements from above are met. At startup, the blockstore processor loads frozen banks. Some of these banks may be roots, and some of these roots may cross the full snapshot interval. If/when that happens, take a bank snapshot and queue the full snapshot in the AccountsPackageSender. And at the end of startup, return the last full snapshot slot to pass into the background services. Fixes solana-labs#19297
brooksprumo
added a commit
to brooksprumo/solana
that referenced
this issue
Sep 1, 2021
Now that the background services are aware of incremental snapshots, they need (1) the corect last full snapshot slot in order to clean accounts correctly, and (2) all expected full snapshots to be available when created an incremental snapshot based on them. This commit fixes startup so both requirements from above are met. At startup, the blockstore processor loads frozen banks. Some of these banks may be roots, and some of these roots may cross the full snapshot interval. If/when that happens, take a bank snapshot and queue the full snapshot in the AccountsPackageSender. And at the end of startup, return the last full snapshot slot to pass into the background services. Fixes solana-labs#19297
brooksprumo
added a commit
to brooksprumo/solana
that referenced
this issue
Sep 2, 2021
Now that the background services are aware of incremental snapshots, they need (1) the corect last full snapshot slot in order to clean accounts correctly, and (2) all expected full snapshots to be available when created an incremental snapshot based on them. This commit fixes startup so both requirements from above are met. At startup, the blockstore processor loads frozen banks. Some of these banks may be roots, and some of these roots may cross the full snapshot interval. If/when that happens, take a bank snapshot and queue the full snapshot in the AccountsPackageSender. And at the end of startup, return the last full snapshot slot to pass into the background services. Fixes solana-labs#19297
I merged the wrong PR... |
This issue has been automatically locked since there has not been any activity in past 7 days after it was closed. Please open a new issue for related bugs. |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
(1) When a validator starts up, there is a call stack of:
...and
Bank::exhaustively_free_unused_resource()
needs to have thelast_full_snapshot_slot
parameter set correctly (right now it isNone
). So I need to figure out how to get that value and pass it through the call stack.This is related to #18973
(2) Additionally, when loading the frozen banks, if a root crosses a full snapshot boundary, we need to take a full snapshot at this point, otherwise the clean from (1) maybe we wrong, and also when ABS starts up, its first incremental snapshots may be wrong.
So need to take full snapshots, plus pass the last full snapshot slot to ABS when it starts up.
The text was updated successfully, but these errors were encountered: