Configuration
RocksDB exposes hundreds of knobs. The C# binding groups them into a handful of fluent option types:
| Type | Scope | When you set it |
|---|---|---|
DbOptions |
Database-wide | Passed to RocksDb.Open(...). |
ColumnFamilyOptions |
Per column family | Passed inside ColumnFamilies at open time, or used by CreateColumnFamily. |
ReadOptions |
Per read / iterator | Passed to Get, MultiGet, NewIterator. |
WriteOptions |
Per write | Passed to Put, Merge, Remove, Write. |
BlockBasedTableOptions |
Per column family's table format | Attached to a ColumnFamilyOptions. |
All of them are fluent builders — every setter returns this — so you can chain:
var options = new DbOptions()
.SetCreateIfMissing(true)
.IncreaseParallelism(Environment.ProcessorCount)
.SetMaxOpenFiles(-1)
.SetCompression(Compression.Zstd);
For the upstream reference on what each option does, see the Tuning Guide, Setup Options and Basic Tuning, and the headers in include/rocksdb/options.h.