KantoDB Developer Guide

Resources

Unorganized

  • rocksdb crate docs
  • The Design of the Postgres Storage System (VLDB 1987)
  • How CockroachDB's MVCC Model Works (RocksDB Meetup 2015, video, slides
    • they store one key for metadata, then key per each MVCC version
    • custom order logic to get MVCC versions sorted largest-first
  • RocksDB transactions: https://github.com/facebook/rocksdb/wiki/Transactions#optimistictransactiondb, https://github.com/facebook/rocksdb/wiki/WritePrepared-Transactions, https://github.com/facebook/rocksdb/wiki/WriteUnprepared-Transactions
  • RocksDB objects must be deleted before exit (or you crash with "pure virtual method called" in destructor): https://github.com/facebook/rocksdb/issues/649#issuecomment-119779477 via https://github.com/rust-rocksdb/rust-rocksdb/issues/463
  • RocksDB merge operator: https://github.com/facebook/rocksdb/wiki/Merge-Operator, https://github.com/facebook/rocksdb/wiki/Merge-Operator-Implementation
  • each RocksDB column family takes about 64 MiB RAM: https://github.com/facebook/rocksdb/issues/2426