Releases: ben-manes/caffeine
Releases · ben-manes/caffeine
2.8.8
2.8.7
2.8.6
Cache
- Changed false sharing protection to comply with JDK 15's field layout (Java Objects Inside Out)
- Suppressed the removal listener notification when an
AsyncCache
future value resolves to null - Improved the implementations of
AsyncCache.synchronous().asMap()
conditional methods - Added Jandex index for assisting GraalVM AOT (quarkusio/quarkus#10420)
- Deprecated
UnsafeAccess
andSingleConsumerQueue
JCache
2.8.5
2.8.4
2.8.3
2.8.2
2.8.1
2.8.0
Cache
- Included the license file in the jar (#325)
- Added
RemovalCause
toStatsCounter
(#304) - Added
getAll
support to manual caches (#310) - Fixed long overflow in statistics (google/guava#3503)
- Added
Scheduler
for prompt eviction of expired entries (#195)
JCache
- Fixed assigning ticker to cache builder (#313)
2.7.0
Cache
- Added async
asMap()
view (#156) - Introduced
AsyncCache
for manual async cache (#246) - Fixed async expiration when create races with reads (#298)
- Improved hit rates by using an adaptive eviction policy (#106)
- Fixed refresh to use the stats ticker for recording the load time (#240)
- Rescheduled async maintenance immediately if pending work remains (#225)
- Migrated from JSR-305 annotations to CheckerFramework & ErrorProne (#242)
JCache
- Added config file setting for the executor (#276)
This release includes improvements to the eviction policy by using a hill climber to optimize for frequency or recency. For more details, see the HighScalability article and our paper Adaptive Software Cache Management.