Memory-aware Maps with LRU eviction
-----------------------------------

                 Key: HBASE-1186
                 URL: https://issues.apache.org/jira/browse/HBASE-1186
             Project: Hadoop HBase
          Issue Type: New Feature
            Reporter: Jonathan Gray
            Priority: Critical
             Fix For: 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.
- Memory-aware
- 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.
- Memory-aware
- 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.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to