Skip to content

Roadmap

Ben Manes edited this page Oct 12, 2015 · 135 revisions

Current

  • Allow hot reads to skip maintenance work (maybe 2-3x speedup?)
  • W-TinyLfu improvements through queue management experimentations
    • Segmented-Lru for MAIN queue improves hit rate by choosing a better victim
    • Larger window improves OLTP (becomes top performer)

Version 2.0

A major revision that includes API incompatible changes.

  • DONE: Replace LRU with W-TinyLfu eviction policy
  • DONE: Inspect whether stats are enabled in the Policy
  • DONE: Rename JCache CopyStrategy to Copier
  • DONE: Removed Tracing package
  • DONE: Remove NonReentrantLock (embed usage)
  • DONE: Remove RemovalNotification (friendlier lambda syntax for listener)
  • DONE: CacheLoader support for checked exceptions (rethrown as CompletionException)
  • DONE: Avoid excessive scheduling of the maintenace task
  • AsyncLocalCache
    • Consider extending Cache<K, CompletableFuture<V>> interface
      • Cache: Conflict on get(k, k -> v) with get(k, k -> future)
      • LoadingCache: Conflicts on getAll returning future<map> vs map<k, future>
    • Add asMap() view of key -> future
  • Misc
    • Consider removal of UnsafeAccess (or wait until VarHandles rewrite?)
    • Review ConcurrentLinkedStack for promotion out of Beta status
    • Document asMap view supports atomic versions of the compute methods

Future

  • Collections
  • Simulator
    • Add weight and expiration support
  • Consider encoding the linked lists as arrays
    • 64-bit reference becomes 32-bit int (only if compressed OOPS is not enabled)
    • Better caching effects due to contiguous data
    • Cons: Limits the size (2B entries), cost is minimal due to maintenance done using ForkJoinPool
  • Benchmark arena spacing vs padding for better false sharing avoidance

Clone this wiki locally