I am looking for a key value store to use as a LRU cache for my application. It needs to hold a lot of data (100G - 1000G) which is why I say disk based. Things I have found via Google seem to be focussed on being in memory.
Other requirements:
- Automatically evict the least recently accessed keys when full
- Highly available (data replicated across 3 nodes, service must work if 2 nodes are up)
- 100k writes, 300k reads per hour
- Values are binary (1k-100k more or less)
- On premise installation on Ubuntu
- Low maintenance (this is for a side-project)
- Cheap/free (this is for a side-project)
- Reliable (reloading the data from source will be very slow, so the cache losing its contents is bad)
Currently I have all of the data in Apache Cassandra. I want to move the data to Backblaze and keep only the hot data local. On a cache miss I will fetch from Backblaze and add to the cache. New/updated keys will write to the cache and later to Backblaze (it might be down). Old data is very rarely accessed.
Cassandra is working very well but I need to add nodes more frequently than I would like as the cluster fills up (currently have 6). The values stored at Backblaze will contain a collection of approx 20 related keys.
Any suggestions? Thanks.