Skip to content

Releases: ben-manes/caffeine

2.8.8

08 Dec 06:21
Compare
Choose a tag to compare

Cache

2.8.7

07 Dec 06:56
Compare
Choose a tag to compare

Cache

  • Fixed asMap().keySet().toArray() to not return expired mappings (#472)
  • Added support for ISO-8601 durations to CaffeineSpec (#466)
  • Fixed put update optimization for variable expiration (#478)

2.8.6

12 Oct 05:50
Compare
Choose a tag to compare

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 and SingleConsumerQueue

JCache

  • Changed to an OSGi Component to avoid coupling consumers to the provider (#447)
  • Added the ability to record native statistics (#460)

2.8.5

29 Jun 04:11
Compare
Choose a tag to compare

Cache

  • Fixed expiration delay for scheduled cleanup (#431)

2.8.4

21 May 04:47
Compare
Choose a tag to compare

Cache

  • Schedule maintenance on an absent getIfPresent if there is pending work (#420)

2.8.3

18 May 07:11
Compare
Choose a tag to compare

Cache

  • Added Policy.getIfPresentQuietly to lookup without affecting the metadata (#418)

2.8.2

27 Apr 07:34
Compare
Choose a tag to compare

Cache

  • Added optimistic fast path for putIfAbsent to avoid locking (apache/openwhisk#2797)
  • Fixed race causing an incorrect removal cause (#412)
  • Fixed SCM connection URLs (#394)

JCache

  • Prefer the thread context classloader (#387)

2.8.1

15 Jan 23:30
Compare
Choose a tag to compare

JCache

  • Allow for using a custom config source (#312)

2.8.0

06 Aug 05:16
Compare
Choose a tag to compare

Cache

  • Included the license file in the jar (#325)
  • Added RemovalCause to StatsCounter (#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

24 Feb 18:41
Compare
Choose a tag to compare

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.