-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Roadmap
Ben Manes edited this page Oct 12, 2015
·
135 revisions
- 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)
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
- Consider extending Cache<K, CompletableFuture<V>> interface
- Misc
- Consider removal of UnsafeAccess (or wait until VarHandles rewrite?)
- Review ConcurrentLinkedStack for promotion out of Beta status
- Document
asMapview supports atomic versions of the compute methods
- 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

