Choosing a Backend
Pluggable storage backends are a key feature of Riak KV. They enable you to choose a low-level storage engine that suits specific operational needs. For example, if your use case requires maximum throughput, data persistence, and a bounded keyspace, then Bitcask is a good choice. On the other hand, if you need to store a large number of keys or to use secondary indexes, LevelDB is likely a better choice.
The following backends are supported:
Riak KV supports the use of custom storage backends as well. See the storage Backend API for more details.
Feature or Characteristic | Bitcask | LevelDB | Memory | Leveled |
---|---|---|---|---|
Default Riak KV backend | ✓ | |||
Persistent | ✓ | ✓ | ✓ | |
Keyspace in RAM | ✓ | ✓ | ||
Keyspace can be greater than available RAM | ✓ | ✓ | ||
Keyspace loaded into RAM on startup1 | ✓ | |||
Objects in RAM | ✓ | |||
Object expiration | ✓ | ✓ | ||
Secondary indexes | ✓ | ✓ | ✓ | |
Tiered storage | ✓ | ✓ |
1 Noted here since this can affect Riak start times for large keyspaces.