1. Introduction
TerarkDB is a core product of Terark. It is a RocksDB distribution that powered by ©™Terark algorithms. with these algorithms, TerarkDB is able to store more data and access much faster than official RocksDB(3+X more data and 10+X faster) on same hardware.
TerarkDB is completely compatible(binary compatible) with official RocksDB.
2. Installation & Documentation
Download precompiled terark-zip-rocksdb
3. Components
TerarkDB has two components:
3.1. TerarkZipTable
TerarkZipTable
is contained in the terark-zip-rocksdb submodule. TerarkZipTable
is a RocksDB
's SSTable
(Static Sorted Table) implementation that using ©™Terark's searchable compression algorithms.
Download precompiled terark-zip-rocksdb
3.2. Terark modified RocksDB
We forked RocksDB and made a few changes to fit our algorithms, we've added it as submodule rocksdb here.
Our changes for RocksDB does not change any RocksDB API, and does not have any extra dependencies, say, Terark modified RocksDB does not depend on TerarkZipTable
(Without TerarkZipTable
, Terark RocksDB works exactly same as official RocksDB).
Our changes includes:
- Add optional two pass scan on SSTable build, existing SSTable is not impacted
- Add TerarkZipTable config by env var
- This change using functions in libterark-zip-table as weak symbol, this is why it does not depends on TerarkZipTable
4. Benchmark
5. License
This software is open source.
5.1 submodule rocksdb
submodule rocksdb is our fork of rocksdb and can be compiled by yourself.
License of submodule rocksdb is same as offical rocksdb(BSD clause 3).
5.2 submodule terark-zip-rocksdb
submodule terark-zip-rocksdb implements an SSTable for submodule rocksdb, terark-zip-rocksdb license is Apache 2.0, with NOTES:
- You can read or redistribute or use the source code under Apache 2.0 license
- You can not compile this software by yourself, since this software depends on our proprietary core algorithms, which requires a commercial license
- You can download the precompiled binary library of this software