Remove array caching to prevent always returning miss from memory #3
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.
We were running into issues that on the first load it was giving us a miss even for subsequent calls.
What was happening was that when you retrieve something from cache that doesn't exist, it gets created but the cache item also gets saved to an array for some extra in memory caching. However, this would store the cache item with
->isHit() = false
making it so that each subsequent call for retrieving that cache item would still yield a->isHit() = false
until you rerun the request where the array would be empty and it would retrieve the cache item from cache with->isHit() = true
.This PR removes the memory caching, we should leave the caching to the CacheItemPool.
I've also added a test to cover this case.
When adding the test, another error surfaced so I fixed a type-hint as well, though I'm not fully confident that it's fully covered now, I didn't have time to dive into that area.