Files
xahaud/ROCKSDB_LITE.md
Vinnie Falco 7bfb4a9ba5 Squashed 'src/rocksdb/' content from commit 78b8a7d
git-subtree-dir: src/rocksdb
git-subtree-split: 78b8a7d908d7e67cc6664398e39560b76c965773
2014-07-03 17:49:00 -07:00

1020 B

RocksDBLite

RocksDBLite 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.

Some examples of the features disabled by ROCKSDB_LITE:

  • compiled-in support for LDB tool
  • No backupable DB
  • No support for replication (which we provide in form of TrasactionalIterator)
  • No advanced monitoring tools
  • No special-purpose memtables that are highly optimized for specific use cases

When adding a new big feature to RocksDB, please add ROCKSDB_LITE compile guard if:

  • Nobody from mobile really needs your feature,
  • Your feature is adding a lot of weight to the binary.

Don't add ROCKSDB_LITE compile guard if:

  • It would introduce a lot of code complexity. Compile guards make code harder to read. It's a trade-off.
  • Your feature is not adding a lot of weight.

If unsure, ask. :)