FoundationDB vs RocksDB: What are the differences?
What is FoundationDB? Multi-model database with particularly strong fault tolerance, performance, and operational ease. FoundationDB is a NoSQL database with a shared nothing architecture. Designed around a "core" ordered key-value database, additional features and data models are supplied in layers. The key-value database, as well as all layers, supports full, cross-key and cross-server ACID transactions.
What is RocksDB? Embeddable persistent key-value store for fast storage, developed and maintained by Facebook Database Engineering Team. RocksDB is an embeddable persistent key-value store for fast storage. RocksDB can also be the foundation for a client-server database but our current focus is on embedded workloads. RocksDB builds on LevelDB to be scalable to run on servers with many CPU cores, to efficiently use fast storage, to support IO-bound, in-memory and write-once workloads, and to be flexible to allow for innovation.
FoundationDB and RocksDB can be categorized as "Databases" tools.
Some of the features offered by FoundationDB are:
- Multiple data models
- Full, multi-key ACID transactions
- No locking
On the other hand, RocksDB provides the following key features:
- Designed for application servers wanting to store up to a few terabytes of data on locally attached Flash drives or in RAM
- Optimized for storing small to medium size key-values on fast storage -- flash devices or in-memory
- Scales linearly with number of CPUs so that it works well on ARM processors
"ACID transactions" is the primary reason why developers consider FoundationDB over the competitors, whereas "Very fast" was stated as the key factor in picking RocksDB.
RocksDB is an open source tool with 14.3K GitHub stars and 3.12K GitHub forks. Here's a link to RocksDB's open source repository on GitHub.