Active support cache - memcached store - consume dalli’s cache_nils option as skip_nil#39763
Merged
rafaelfranca merged 1 commit intorails:masterfrom Dec 18, 2020
Merged
Conversation
Contributor
Author
|
@rafaelfranca - any thoughts on this? |
Member
|
This makes sense. Can you add a CHANGELOG entry and squash the commits in one? |
adfb372 to
a4c43bc
Compare
…ip_nil when using MemCacheStore.
a4c43bc to
5d1eeea
Compare
Contributor
Author
|
@rafaelfranca - done, thanks. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Dalli provides an option to cache_nils as a performance optimisation configuration - https://github.com/petergoldstein/dalli/#configuration ->
cache_nils.Rails'
MemCacheStoredoesn't handle this config very well. If passed, it returns an object ofDalli::Server::NOT_FOUND. It should ideally returnnil.Solutions would be:
nilinstead ofDalli::Server::NOT_FOUNDfor everydeserializecall - this was my first take on the issue - respect dalli’s cache_nil setting #39702. But it felt less intuitive.cache_nilsis passed as an option tomem_cache_store, convert it toskip_nil.Before
After