Type: New Feature
Affects Version/s: None
Fix Version/s: 0.20.0
Caching is key for 0.20. We need a set of memory-aware data structures to manage our caches.
I propose two initial classes: LruHashMap and LruBlockMap
LruHashMap is currently being used over in
HBASE-80 for the Cell cache. Erik Holstad has done extensive testing and benchmarking and will post results over in this issue.
- Fixed size
- LRU eviction
LruBlockMap can be used for the block caching of the new file format in
HBASE-61. It should try to use all available memory, but must contend with Memcaches so is resizable to deal with heap pressure. Adding high priority blocks (evicted last) gives us in-memory functionality as described in bigtable paper.
- Fully resizable
- LRU eviction (with some additions)
- High priority blocks
- Optional: Scan resistant algorithm
Part of this issue is also solving how we will determine the size of cached objects.