-
Notifications
You must be signed in to change notification settings - Fork 266
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
Increase the maximum of ancient slots allowed to be not combined #3205
Conversation
I'm working on adding an option to set this parameter on the validator's command line. |
I suggest coupling this change with: This keeps the overall 'ancient' range at 100k max, and the overall storage range at 432k, so we are at status quo relative today regarding # slots and # file handles. |
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.
max file handle = 430K + 100K + 100K = 630K.
not too bad.
lgtm!
I think 100k means move it into the 432k. I think -10k moves it past the end (so max of 432k - - 10k = 442k. I'm proposing 432k - 100k + 100k = 432k total. |
Ah. I see. So we will update this in the next PR? agave/accounts-db/src/accounts_db.rs Line 598 in 369d2cb
|
I wanted that done IN this pr: I guess I could've been more clear. |
in this one. |
accounts-db/src/accounts_db.rs
Outdated
@@ -595,7 +595,7 @@ pub struct AccountsAddRootTiming { | |||
|
|||
/// if negative, this many accounts older than # slots in epoch are still treated as modern (ie. non-ancient). | |||
/// Slots older than # slots in epoch - this # are then treated as ancient and subject to packing. | |||
const ANCIENT_APPEND_VEC_DEFAULT_OFFSET: Option<i64> = Some(-10_000); | |||
const ANCIENT_APPEND_VEC_DEFAULT_OFFSET: Option<i64> = Some(-100_000); |
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.
i think this is + 100_000
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.
shouldn't it be an offset to smaller slot numbers? if the offset is positive, the logic of several tests has to be adjusted at least, maybe some logic in the algorithms as well. let me figure this out.
we definitely need to start a skipping rewrites version of this and it needs to run more than an epoch. Skipping rewrites is still opt-in and the current master behavior is unacceptable, so even if this isn't completely right, the risk is low at the moment. |
maybe I should merge #3206, rebase this on new master, and then start a skipping rewrites validator? so that all tweaks are included... |
Is there something we're waiting for this PR? I think I addressed all the comments. |
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.
lgtm
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.
Looks good to me. Happy to approve once #3266 is merged.
it's merged. |
My testing found that we can get stuck when I enabled this change. We are not reducing alive_bytes when we encounter multi ref storages we can't pack yet. |
|
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.
lgtm. dependencies are merged
…a-xyz#3205) * Increase the maximum of ancient slots allowed to be not combined * OFFSET * Offset * Fix * Fix * Roots * Comment
Problem
Large files containing ancient slots are expensive to update when the contained account data is being overwritten in more recent slots.
Summary of Changes
We increase the value of the tuning parameter
max_ancient_slots
to allow more ancient slots to remain in their individual storages instead of being combined into larger files. The smaller files are faster to update at the expense of the validator using more file handles.