kbendick opened a new pull request #3803: URL: https://github.com/apache/iceberg/pull/3803
The caffeine cache library version we use is somewhat old (May 2020) and since I've been looking through it, I thought I'd take a chance to update it. The release notes can be found here: https://github.com/ben-manes/caffeine/releases There are 9 releases between 2.8.4 and 2.9.3. The releases before 2.9.0 are all small (but possibly important) bug fixes. The 2.x release line is still being maintained for now. The 3.x line was introduced due to a breaking API change that would only affect users who depend on this `Cache` to have the exact same interfaces as Guava and some other caching libraries. Here's the incompatibilities between 2.x and 3.x (which are mostly due to the need to support people who use this cache in place of Guava or similar libraries): ``` Incompatible changes VarExpiration time-based puts now return the old value instead of a boolean result Removed jandex resource as no longer utilized by Quarkus Split Policy.Expiration into fixed and refresh interfaces ``` I played it safe and stayed on 2.x, but I personally think we should just go to 3.x. The differences between the two (in the changelog) are the same, outside of 3.0.0 and 2.9.0, where 3.0.0 has the incompatible parts as well as a few extra perf enhancements. Some of the relevant fixes for us might include: From 2.8.5: - Fixed expiration delay for scheduled cleanup [#431](https://github.com/ben-manes/caffeine/issues/431), which might have helped out with the potential deadlock that is seen in #3791, as the reported issue is very similar to #3791 (though I think we should still use the fix provided there) From 2.9.0: - Added Caffeine.evictionListener which is notified within the atomic operation when an entry is automatically removed. (This method was how I was originally going to attempt to fix #3791 until @racevedoo graciously supplied a fix in #3801) - Added triggering cache maintenance if an iterator observes an expired entry for more aggressive eviction If people want to upgrade to 3.x, I can do that too. It seems not only safe, but actually safer than our current code on 2.8.4. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
