All Versions
15
Latest Version
Avg Release Cycle
78 days
Latest Release
4 days ago

Changelog History
Page 1

  • v2.8.4

    May 21, 2020

    Cache

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

    May 18, 2020

    Cache

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

    April 27, 2020

    Cache

    • ➕ Add 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)
  • v2.8.1

    January 15, 2020

    JCache

    • 👍 Allow for using a custom config source (#312)
  • v2.8.0

    August 06, 2019

    Cache

    • Include the license file in the jar (#325)
    • ➕ Add RemovalCause to StatsCounter (#304)
    • ➕ Add getAll support to manual caches (#310)
    • 🛠 Fix long overflow in statistics (google/guava#3503)
    • ➕ Add Scheduler for prompt eviciton of expired entries (#195)

    JCache

    • 🛠 Fix assigning ticker to cache builder (#313)
  • v2.7.0

    February 24, 2019

    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.

  • v2.6.2

    February 22, 2018

    Cache

    • 🔄 Changed the default initialCapacity to match ConcurrentHashMap's from 0 to 16 (#218)
    • 🛠 Fixed variable expiration's duration calculation overflowing due to timestamp race (#217)
    • 🐛 Avoiding method handles due to memory leak caused by JDK-8174749 (#222)
    • Promote using java.time.Duration instead of long, TimeUnit pair (#221)
    • 👌 Improved Guava compatibility for bulk get iteration order (#220)
  • v2.6.1

    December 28, 2017

    Cache

    • 🛠 Fixed null value being propagated to callbacks on null result of a CompletableFuture (#206)
    • 👌 Improved emulation of synchronous computations in AsyncLoadingCache asMap() view
    • ➕ Added Automatic-Module-Name manifest entry for Java 9 modularity (#211)
    • Significantly reduced the jar size due to code generation bloat (#110)
    • 🛠 Fixed futures not expiring due to stale read of the time (#212)

    JCache

    • 🛠 Fixed Cache invoke() not notifying the writer when the entry was loaded and modified (#210)
    • ⬆️ Upgraded to specification version 1.1.0

    ACM's Transaction on Storage has published our paper on TinyLFU! To download the paper legally without the paywall, please use the authorizer link in the project's readme.

  • v2.6.0

    November 01, 2017

    Cache

    • ➕ Added put methods to Policy.VarExpiration that specify the entry's expiration time (#163)
    • 🛠 Fixed early expiration due to long computations and a stale read of the time (#191)

    JCache

    • 🛠 Fixed cache not being created from the external configuration properly (#194)
    • 🚧 Passes 1.1 preview TCK except for backwards incompatible 1.0 TCK tests
  • v2.5.6

    September 23, 2017

    JCache

    • 🛠 Fixed invoke on an expired entry when a CacheLoader is used (#187)