deps(core): update dependency ziggycreatures.fusioncache to 2.9.0 - #1260
Merged
Merged
Conversation
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.
This PR contains the following updates:
2.8.0→2.9.0Release Notes
ZiggyCreatures/FusionCache (ZiggyCreatures.FusionCache)
v2.9.0🦅 Eager Refresh now also checks L2
Community member @sfhb24 noticed that during an Eager Refresh the L2 was not being checked.
Now, this is admittedly not a huge thing per se, because of 2 reasons:
In both these cases, the extra L2 check during an eager refresh would not be necessary.
Having said that, an L1+L2 setup without a backplane or a distributed locker may also be common, and in that case the new L2 check in the eager refresh window can in fact be helpful in reducing the amount of factory executions even more.
Long story short: I just implemented it!
See here for the issue.
🔒 Fix for memory locker + Eager Refresh edge case
If a factory fails when executed in the background during an eager refresh, FusionCache already takes care of everything and correctly releases the potentially acquired locks (memory and/or distributed), and this is good.
But community member @joaopbnogueira noticed a peculiar edge case: if the factory is not one marked with the
asynckeyword AND it throws an exception, the memory lock is not being released properly.Or, to better say, "was not". Because now this has been fixed.
Thanks João for spotting this.
See here for the issue.
🔒 Fix for distributed locker + skip L1 edge case
Community member @joaopbnogueira also noticed another peculiar scenario, specifically when a
MemoryCachewrite fails (yep, it can happen, true story).Here's an example of it:
MemroyCacheis being used as the L1SizeLimitSizespecifiedSizeLimitit's mandatory for every entry to specify aSize)In this scenario a distributed lock may not have been released.
But fear no more: this does not hapen anymore!
See here for the issue.
🧼 Fix for
Clear(false)+ Fail-SafeCommunity member @joaopbnogueira (damn, he is on a roll!) noticed something else, that somehow went unnoticed until now.
In some cases, after a
Clear(false)call, an expired entry saved with Fail-Safe enabled may still be returned by FusionCache.This too has now been fixed.
See here for the issue.
🔭 Allocation-free tags on the metrics hot path
Community member @GordeySt sent a PR with some really nice optimizations, particularly around reducing resource allocations and CPU consumption when working with metrics.
Now, even with metrics enabled, the hot path is allocation free.
That's great, thanks Gordey!
See here for the PR.
✅ Tests
The test suite just crossed the 1600 mark:
Nice 🙂
Configuration
📅 Schedule: (in timezone Europe/Zurich)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.