Cleanup - Removes LoadedProgram::maybe_expiration_slot
#35023
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
When switching from explicit to implicit
DelayVisibility
tombstones, we have forgotten to remove their expiration mechanism which became unreachable:During extraction the
DelayVisibility
tombstone is created implicitly and inserted into the batch cache as a hit. Because it does not count as a miss, it is never loaded and assigned / replenished. Thus, theDelayVisibility
tombstones only exists on the TX batch level, not on the global loaded programs cache. So, they can never be encountered duringextract()
and don't need to be skipped. And they can also not be pruned by expiration as they never get inserted in the first place.Summary of Changes
LoadedProgram::maybe_expiration_slot
Stats::prunes_expired
DelayVisibility
tombstones inLoadedPrograms::is_entry_usable()
DelayVisibility
tombstones inLoadedPrograms::prune()