Expand description
This module offers a protobuf implementation (to be used
with LaunchDarkly) RocksDBTuningParameters
that can be used
to tune a RocksDB instance. The supported options are carefully
considered to be a minimal set required to tune RocksDB to perform
well for the UPSERT
usecase. This usecase is slightly odd:
- Very high write rate (1:1 with reads)
- No durability requirements
- Minimal space amplification
- Relatively relaxed read and write latency requirements
- (note that
UPSERT
RocksDB instances are NOT in the critical path for any sort of query.
- (note that
The defaults (so, the values resulting from derserializing {}
into a RocksDBTuningParameters
) should be reasonable defaults.
The documentation on each field in RocksDBTuningParameters
has more
information
Note that the following documents are required reading to deeply understand this module:
- https://github.com/EighteenZi/rocksdb_wiki/blob/master/RocksDB-Tuning-Guide.md
- https://github.com/EighteenZi/rocksdb_wiki/blob/master/Compression.md
- https://github.com/facebook/rocksdb/wiki/Setup-Options-and-Basic-Tuning
- https://www.eecg.toronto.edu/~stumm/Papers/Dong-CIDR-16.pdf
- http://smalldatum.blogspot.com/2015/11/read-write-space-amplification-pick-2_23.html
Modulesยง
- The following are defaults (and default strings for LD parameters) for
RocksDBTuningParameters
. - Nested message and enum types in
ProtoRocksDbTuningParameters
.
Structsยง
- The lowercase
b
is because prost lowercases it anyways if its capitalized :( - A set of parameters to tune RocksDB. This struct is plain-old-data, and is used to update
RocksDBConfig
, which contains some dynamic value for some parameters.
Enumsยง
- The 2 primary compaction styles in RocksDB
. See
RocksDBTuningParameters::compaction_style` for more information. - Mz-supported compression types in RocksDB
. See
RocksDBTuningParameters::compression_type` for more information.