Skip to content
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

set rent_epoch to Slot::MAX for rent exempt accounts #28585

Closed
jeffwashington opened this issue Oct 25, 2022 · 1 comment
Closed

set rent_epoch to Slot::MAX for rent exempt accounts #28585

jeffwashington opened this issue Oct 25, 2022 · 1 comment
Assignees

Comments

@jeffwashington
Copy link
Contributor

Problem

#26509 got activated on mnb.
we can no longer create rent paying accounts.
rent_epoch will become meaningless once there are no longer rent paying accounts.
#26509 causes us to 'freeze' rent_epoch where it is when rewrites occur.
It would be helpful to freeze rent_epoch at a known sentinel value which is consistent for all rent exempt accounts.
Slot::MAX is such a sentinel value.
0 is already used at various times, but we could re-use it. There will be complications because we have special case code for 0 right now.
Before we stop doing rewrites (which is 1.15 at best), we need to have stabilized on the final value for rent_epoch for rent exempt accounts. Since each account's hash is dependent on rent_epoch, and we hope to stop storing account hash values in append vecs, we need the hash to be stabilized, using this constant, frozen value.

Also, once almost all accounts have a rent_epoch field of the same value, we can ultimately eliminate this field from append vecs and thus, snapshots, in-memory mmaps, the write cache, and all in-memory representations of an account. This is a step towards being able to remove this field completely.

Proposed Solution

@jeffwashington
Copy link
Contributor Author

#28683

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant