038a477b53
Summary: This diff is addressing multiple things with a single goal -- to make RocksDB easier to use: * Add some functions to Options that make RocksDB easier to tune. * Add example code for both simple RocksDB and RocksDB with Column Families. * Rewrite our README.md Regarding Options, I took a stab at something we talked about for a long time: * https://www.facebook.com/groups/rocksdb.dev/permalink/563169950448190/ I added functions: * IncreaseParallelism() -- easy, increases the thread pool and max_background_compactions * OptimizeLevelStyleCompaction(memtable_memory_budget) -- the easiest way to optimize rocksdb for less stalls with level style compaction. This is very likely not ideal configuration. Feel free to suggest improvements. I used some of Mark's suggestions from here: https://github.com/facebook/rocksdb/issues/54 * OptimizeUniversalStyleCompaction(memtable_memory_budget) -- optimize for universal compaction. Test Plan: compiled rocksdb. ran examples. Reviewers: dhruba, MarkCallaghan, haobo, sdong, yhchiang Reviewed By: dhruba CC: leveldb Differential Revision: https://reviews.facebook.net/D18621
25 lines
1.2 KiB
Markdown
25 lines
1.2 KiB
Markdown
## RocksDB: A Persistent Key-Value Store for Flash and RAM Storage
|
|
|
|
RocksDB is developed and maintained by Facebook Database Engineering Team.
|
|
It is built on on earlier work on LevelDB by Sanjay Ghemawat (sanjay@google.com)
|
|
and Jeff Dean (jeff@google.com)
|
|
|
|
This code is a library that forms the core building block for a fast
|
|
key value server, especially suited for storing data on flash drives.
|
|
It has an Log-Structured-Merge-Database (LSM) design with flexible tradeoffs
|
|
between Write-Amplification-Factor (WAF), Read-Amplification-Factor (RAF)
|
|
and Space-Amplification-Factor (SAF). It has multi-threaded compactions,
|
|
making it specially suitable for storing multiple terabytes of data in a
|
|
single database.
|
|
|
|
Start with example usage here: https://github.com/facebook/rocksdb/tree/master/examples
|
|
|
|
See [doc/index.html](https://github.com/facebook/rocksdb/blob/master/doc/index.html) and
|
|
[github wiki](https://github.com/facebook/rocksdb/wiki) for more explanation.
|
|
|
|
The public interface is in `include/`. Callers should not include or
|
|
rely on the details of any other header files in this package. Those
|
|
internal APIs may be changed without warning.
|
|
|
|
Design discussions are conducted in https://www.facebook.com/groups/rocksdb.dev/
|