#15 implement key expiration and cache eviction policy #16
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.
What type of PR is this? (check all applicable)
Description
Key Changes
This PR implements key expiration and a cache eviction policy, addressing issue #15. The key expiration is managed using a
BTreeSet<(Instant, String)>
to store expiration keys. To purge expired keys, theBTreeSet
is split from the oldest keys up toInstant::now()
, effectively targeting the subset of expired keys.In the Geoprox server, a separate thread is spawned that runs in a sidecar state (
Arc::clone
of the app state). This thread executes an async loop that checks and removes expired keys every second.Additional tests have been added to validate the purging process and the async loop runtime. Running
cargo test
is sufficient to verify the implementation.Related Tickets & Documents
QA Instructions, Screenshots, Recordings
To test the changes:
cargo test
to validate the key expiration and cache eviction functionality.Added/updated tests?