SIMD-0175: disable partitioned rent collection
simd: '0175' title: Disable Partitioned Rent Updates authors: Justin Starry (Anza) category: Standard type: Core status: Accepted created: 2024-09-25 feature: https://github.com/anza-xyz/agave/issues/4562
Summary
Partitioned rent collection should be removed since it will no longer be useful after rent collection is disabled by https://github.com/solana-labs/solana/issues/33946 (https://github.com/solana-foundation/solana-improvement-documents/pull/84) and account rewrites are disabled by https://github.com/solana-labs/solana/issues/26599.
Motivation
Since partitioned rent collection is no longer necessary for collecting rent or updating the account rent epoch field, it should be removed to speed up block production and block replay.
New Terminology
NA
Detailed Design
Disabling partitioned rent collection is very straightforward. Partitioned rent collection is initiated during bank freezing and can simply be not performed if a feature gate is activated.
Alternatives Considered
NA
Impact
Improved block processing performance by removing the need to load all accounts once per epoch for no good reason. Note that the epoch accounts hash calculation similarly loads all accounts once per epoch but serves the important role of ensuring that all validators have the same set of account state.
Security Considerations
Rent related code changes often come along with a lot of edge cases to consider so changes should be made carefully to avoid introducing any bugs.
Drawbacks (Optional)
Why should we not do this?
Backwards Compatibility (Optional)
Changes require feature gates for activation to avoid any backwards incompatiblity