Skip to content

Roadmap

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

Version 2.0

A major revision that includes API incompatible changes.

  • RemovalListener
    • Use friendlier typed lambda syntax to chain as (k, v, cause) -> ...
    • RemovalNotification retained as helper, but not used in the API
  • 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 -> futures
  • Tracing
    • Remove deprecated methods
    • Use snake case for system properties (consistency with Typesafe Config library)
  • Rename SerializationAwareCopyStrategy to JavaSerializationCopyStrategy

Pending

  • Add CacheWriter
    • Simplifies support for write-through / write-behind caching, e.g. layered caches
    • Executed synchronously within atomic block that writes/deletes the cache entry
  • JCache eviction listener ordering
    • Spec says that listeners must be notified in sequence of key operations
    • All implementations use asynchronous (unordered) notifications on eviction
    • Implement race handling to delay a events until the preceding evict is sent
  • Reduce excessive padding
    • Currently copy-and-pasted for quick development
    • Uses 128-byte padding to protect from adjacent fields
  • Arena spacing vs padding (ConcurrentLinkedStack, SingleConsumerQueue)
    • Benchmark spacing arena elements for better false sharing avoidance.

Future

Clone this wiki locally