What is RocksDB?
-- 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. -
-How does performance compare?
-- We benchmarked LevelDB and found that it was unsuitable for our - server workloads. The - benchmark results look awesome at first sight, but we quickly - realized that those results were for a database whose size was - smaller than the size of RAM on the test machine - where the entire - database could fit in the OS page cache. When we performed the same - benchmarks on a database that was at least 5 times larger than main - memory, the performance results were dismal. -
-- By contrast, we've published the - RocksDB benchmark results for server side workloads on Flash. We - also measured the performance of LevelDB on these server-workload - benchmarks and found that RocksDB solidly outperforms LevelDB for - these IO bound workloads. We found that LevelDB's single-threaded - compaction process was insufficient to drive server workloads. We - saw frequent write-stalls with LevelDB that caused 99-percentile - latency to be tremendously large. We found that mmap-ing a file into - the OS cache introduced performance bottlenecks for reads. We could - not make LevelDB consume all the IOs offered by the underlying Flash - storage. -
+What is RocksDB?
-What is RocksDB suitable for?
-- RocksDB can be used by applications that need low latency database - accesses. A user-facing application that stores the viewing history - and state of users of a website can potentially store this content - on RocksDB. A spam detection application that needs fast access to - big data sets can use RocksDB. A graph-search query that needs to - scan a data set in realtime can use RocksDB. RocksDB can be used to - cache data from Hadoop, thereby allowing applications to query - Hadoop data in realtime. A message-queue that supports a high number - of inserts and deletes can use RocksDB. -
++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. +
-Why is RocksDB open sourced?
-- We are open sourcing this project on GitHub because we - think it will be useful beyond Facebook. We are hoping that software - programmers and database developers will use, enhance, and customize - RocksDB for their use-cases. We would also like to engage with the - academic community on topics related to efficiency for modern - database algorithms. -
++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. +
+ +How does performance compare?
+ ++We benchmarked LevelDB and found that it was unsuitable for our server +workloads. The benchmark +results look awesome at first sight, but we quickly realized that those +results were for a database whose size was smaller than the size of RAM on the +test machine - where the entire database could fit in the OS page cache. When we +performed the same benchmarks on a database that was at least 5 times larger +than main memory, the performance results were dismal. +
+ ++By contrast, we've published the RocksDB +benchmark results for server side workloads on Flash. We also measured the +performance of LevelDB on these server-workload benchmarks and found that +RocksDB solidly outperforms LevelDB for these IO bound workloads. We found that +LevelDB's single-threaded compaction process was insufficient to drive server +workloads. We saw frequent write-stalls with LevelDB that caused 99-percentile +latency to be tremendously large. We found that mmap-ing a file into the OS +cache introduced performance bottlenecks for reads. We could not make LevelDB +consume all the IOs offered by the underlying Flash storage. +
+ +What is RocksDB suitable for?
+ ++RocksDB can be used by applications that need low latency database accesses. A +user-facing application that stores the viewing history and state of users of a +website can potentially store this content on RocksDB. A spam detection +application that needs fast access to big data sets can use RocksDB. A +graph-search query that needs to scan a data set in realtime can use RocksDB. +RocksDB can be used to cache data from Hadoop, thereby allowing applications to +query Hadoop data in realtime. A message-queue that supports a high number of +inserts and deletes can use RocksDB. +
+ +Why is RocksDB open sourced?
+ ++We are open sourcing this project on GitHub because we think it will +be useful beyond Facebook. We are hoping that software programmers and database +developers will use, enhance, and customize RocksDB for their use-cases. We +would also like to engage with the academic community on topics related to +efficiency for modern database algorithms. +