]> git.proxmox.com Git - ceph.git/blame - ceph/src/rocksdb/ROCKSDB_LITE.md
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / rocksdb / ROCKSDB_LITE.md
CommitLineData
7c673cae
FG
1# RocksDBLite
2
3RocksDBLite is a project focused on mobile use cases, which don't need a lot of fancy things we've built for server workloads and they are very sensitive to binary size. For that reason, we added a compile flag ROCKSDB_LITE that comments out a lot of the nonessential code and keeps the binary lean.
4
5Some examples of the features disabled by ROCKSDB_LITE:
6* compiled-in support for LDB tool
7* No backupable DB
8* No support for replication (which we provide in form of TrasactionalIterator)
9* No advanced monitoring tools
10* No special-purpose memtables that are highly optimized for specific use cases
11* No Transactions
12
13When adding a new big feature to RocksDB, please add ROCKSDB_LITE compile guard if:
14* Nobody from mobile really needs your feature,
15* Your feature is adding a lot of weight to the binary.
16
17Don't add ROCKSDB_LITE compile guard if:
18* It would introduce a lot of code complexity. Compile guards make code harder to read. It's a trade-off.
19* Your feature is not adding a lot of weight.
20
21If unsure, ask. :)