OffHeap Store is a library that provides a set of map and cache implementations that store data outside of the normal Java heap. Additionally it provides a bunch of interesting things to support these functions that might be interesting in isolation to some people.
Licensed under the Apache License, Version 2.0 © Terracotta, Inc., a Software AG company.
See also: http://www.github.com/ehcache/ehcache3
On the surface OffHeap Store contains implementations of:
Map (non thread-safe)
ConcurrentMap (single stripe or segmented; read-write locked or exclusively locked)
Set (but use Collections.newSetFromMap(Map) instead)
Clock Cache (single stripe or segmented; read-write locked or exclusively locked)
Additional functionality includes:
Cache Entry Pinning
Non-fault tolerant disk backend
Things that might be interesting to some:
Per entry metadata (very basic API)
Serialization optimization (redundant ObjectStreamClass descriptor compression)
Native heap-alike implementation (OffHeapStorageArea)
A (crude) weak identity hash map (because the world needed one more)
Like all software OffHeap Store is just a big stack of abstractions, rough structure starting at the bottom and working up.
ByteBuffer factories [org.terracotta.offheapstore.buffersource]
Page factories, that uses ByteBuffers) [org.terracotta.offheapstore.paging]
native heap-alike that uses pages)
provide storage for POJOs, some use OffHeapStorageArea)
core map implementation, uses storage engine for K/V storage and a page for the hashtable.
|a million subclasses||
all the map derivatives: concurrent, evicting (caches), et al.