basho/leveldb — pull request #5 by matthewvon (2012-05-20 13:05:42+00:00)
Title: Clean up caching for better read speed and better size accounting.

Following changes:
1. reader reader/writer lock objects for use with cache so GET operations can fly through quicker
2. changed LRU accounting from rearranging list on every read (which required write lock) to timestamp based
3. made LRUCache a proper subclass of Cache object so it could be used independently
4. table_cache now uses LRUCache instead of sharded cache because distribution of files across shards was highly uneven for low file counts (i.e. Riak usage) and caused stalls
5. block_cache now includes size of LRUHandle and key in its size accounting