ToplingDB - A Persistent Key-Value Store for External Storage
As the creator of TerarkDB (acquired by ByteDance in 2019), I have developed ToplingDB in recent years. ToplingDB is forked from RocksDB, where we have replaced almost all components with more efficient alternatives(db_bench shows ToplingDB is about ~8x faster than RocksDB): * MemTable: SkipList is replaced by CSPP(Crash Safe Parallel Patricia trie), which is 8x faster. * SST: BlockBasedTable is replaced by ToplingZipTable, implemented by searchable compression algo, it is very small and fast, typically less than 1μs per lookup: * Keys/Indexes are compressed using NestLoudsTrie(a…
In plain words
ToplingDB is a persistent key-value store for external storage built on RocksDB with optimized internal components. It replaces core elements like SkipList with faster data structures (CSPP Patricia trie) and introduces ToplingZipTable for compressed storage with sub-microsecond lookups. The system is designed for developers and organizations needing high-performance database operations, achieving approximately 8x faster performance than RocksDB through compression algorithms, improved indexing, and eliminated redundant caching. It targets users requiring efficient data persistence at scale.
written from the facts on this page · September 2026
From the sources
In the maker’s words, at launch
As the creator of TerarkDB (acquired by ByteDance in 2019), I have developed ToplingDB in recent years. ToplingDB is forked from RocksDB, where we have replaced almost all components with more efficient alternatives(db_bench shows ToplingDB is about ~8x faster than RocksDB): * MemTable: SkipList is replaced by CSPP(Crash Safe Parallel Patricia trie), which is 8x faster. * SST: BlockBasedTable is replaced by ToplingZipTable, implemented by searchable compression algo, it is very small and fast, typically less than 1μs per lookup: * Keys/Indexes are compressed using NestLoudsTrie(a multi-layer nesting LOUDS succinct trie). * Values in a SST are compressed together with better zip ratio than zstd, and can unzip by a single value at 1GB/sec. * BlockCache is no longer needed, double caching(BlockCache & PageCache) is avoided Other hotspots are also improved: * Flush MemTable to L0 is omited, greatly reducing write amp and is very friendly for large(GB) MemTable * MemTable serves as the index of Key to "value position in WAL log" * Since WAL file content almost always in page cache, thus value content can be efficiently accessed by mmap * When Flush happens, MemTable is dumpped as an SST and WAL is treated as a blob file * CSPP MemTable use integer index instead of physical pointers, thus in-memory format is exactly same with in-file format * Prefix cache for searching candidate SSTs and prefix cache for scanning by iterators * Caching fixed len key prefix into an array, binary search it as an uint array * Distributed compaction(superior replacement to rocksdb remote compaction) * Gracefully support MergeOperator, CompactionFilter, PropertiesCollector... * Out of the box, development efforts are significantly reduced * Very easy to share compaction service on spot instances for many DB nodes Useful Bonus Feature: * Config by json/yaml: can config almost all features * Optional embeded WebView: show db structures in web browser, refreshing pages like animation * Online update db configs by http MySQL integration, ToplingDB has integrated into MySQL by MyTopling, which is forked from MyRocks with great improvements, like improvements of ToplingDB on RocksDB: * WBWI(WriteBatchWithIndex): like MemTable, SkipList is replace with CSPP, 20x faster(speedup is more than MemTable). * LockManager & LockTracker: 10x faster * Encoding & Decoding: 5x faster * Others .... MyRocks has many disadvantages compared to InnoDB, while MyTopling outperforms InnoDB at almost all aspect - excluding feature differences. We have create ~100 PRs for RocksDB, in which ~40 were accepted. Our PRs are mostly "small" changes, since big changes are not likely accepted. ToplingDB has been deployed in numerous production environments. Welcome every one using ToplingDB & MyTopling, and discuss in https://github.com/topling/toplingdb/discussions
More commerce this month
the category →

Compare your startup equity grant for free.
Commerce · 26d ago · equitybee.com
Launched alongside, July 2025
the whole month →
Trickle - Magic Canvas ▲1,064The 1st Agentic Canvas for building apps visually with AI
AI · 2025 · trickle.so
- TB
Life & fun · 2025 · trytender.app
- TY
Today marks ten years, 3653 consecutive days, of running at least one mile every day under the USRSA rules [1]. To celebrate, I built an interactive dashboard that turns a decade of GPX files into charts you can explore. Running has truly changed my life: I've made lifelong friends, explored beautiful places, and more importantly invested into my own health and fitness, which I'm starting to see the positive benefits as I get older. The stack is pretty simple: a NextJS app, with a Postgres database to keep all my running data, and all the stats are pre-computed and cached in Redis, so I…
Dev tools · 2025 · nodaysoff.run
- DA
Made this website as an exercise in vibe-coding and GCP. It was posted about a few times around the internet, on sites like Morning Brew (https://www.morningbrew.com/issues/business-buzzkill), MetaFilter (https://www.metafilter.com/209703/Draw-A-Fish), boingboing.net, etc. I think it's cute! I built a basic CNN trained against penises and swastikas, and then anything that doesn't hit the 63% confidence score gets sent to a mod queue, a vibe-coded fish-tinder…
Dev tools · 2025 · drawafish.com