Features Not in LevelDB

Siying Dong edited this page Aug 8, 2016 · 11 revisions

RocksDB Features that are not in LevelDB

Performance

  • Multithread compaction
  • Multithread memtable inserts
  • Reduced DB mutex holding
  • Optimized level-based compaction style and universal compaction style
  • Prefix bloom filter
  • Memtable bloom filter
  • Single bloom filter covering the whole SST file
  • Write lock optimization
  • Improved Iter::Prev() performance
  • Fewer comparator calls during SkipList searches
  • Allocate memtable memory using huge page.

Features

  • Column Families
  • Transactions and WriteBatchWithIndex
  • Backup and Checkpoints
  • Merge Operators
  • Compaction Filters
  • RocksDB Java
  • Manual Compactions Run in Parallel with Automatic Compactions
  • Persistent Cache
  • Bulk loading
  • Forward Iterators/ Tailing iterator
  • Single delete
  • Delete files in range
  • Pin iterator key/value

Alternative Data Structures And Formats

  • Plain Table format for memory-only use cases
  • Vector-based and hash-based memtable format
  • Clock-based cache (coming soon)
  • Pluggable information log
  • Annotate transaction log write with blob (for replication)

Tunability

  • Rate limiting
  • Tunable Slowdown and Stop threshold
  • Option to keep all files open
  • Option to keep all index and bloom filter blocks in block cache
  • Multiple WAL recovery modes
  • Fadvise hints for readahead and to avoid caching in OS page cache
  • Option to pin indexes and bloom filters of L0 files in memory
  • More Compression Types: zlib, lz4, zstd
  • Compression Dictionary
  • Checksum Type: xxhash
  • Different level size multiplier and compression type for each level.

Manageability

  • Statistics
  • Thread-local profiling
  • More commands in command-line tools
  • User-defined table properties
  • Event listeners
  • More DB Properties
  • Dynamic option changes
  • Get options from a string or map
  • Persistent options to option files

Contents

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.