HNHacker News
TopNewBestAskShowJobs

royguo1988

192 karma · joined May 3, 2016

Storage System Engineer, <kuankuan.guo@foxmail.com>
submissionscomments
royguo1988··on TerarkDB, ByteDance's RocksDB replacement
This is wired, I will call our internal Lark team to deal with it.
royguo1988··on TerarkDB, ByteDance's RocksDB replacement
Sorry for the unclear response. 1) We use TerarkDB under a distributed SQL database and TerarkDB helps to store its pages (16KB page), its one of the most widely used SQL database inside Bytedance. 2) We use TerarkDB under a Redis compatible distributed cache system to store raw key value pairs.

Almost all kinds of workloads are here since TerarkDB runs under too many database clusters (each cluster only serves a single application)

royguo1988··on TerarkDB, ByteDance's RocksDB replacement
In bytedance, a few database services are using TerarkDB.
royguo1988··on TerarkDB, ByteDance's RocksDB replacement
All source code is open source now. You can find them in `third-party/terark-zip`, terark-zip is a standalone repo that contains only core algorithms.
royguo1988··on TerarkDB, ByteDance's RocksDB replacement
Thanks for your attention, glad someone here still remember our history, TerarkDB is now FULLY open source with `succinct data structures`.

Here's the reasons: 1. Our `all-in-one` docs are still under writing, we will cover that part later. 2. For the performance part, we are now showing real-world cases, not a well-designed benchmark.(We selected the best result to show our work few years ago, don't want to do it anymore) 3. About why TerarkDB is faster than RocksDB will be explained in our `all-in-one docs` in one week, and most of the reasons are not magic, just engineering efforts

Thanks again for your remembering us.

royguo1988··on TerarkDB, ByteDance's RocksDB replacement
We didn't test the Java Binding for quick a long time, I am not sure if it can still compile the Java Binding well, please fill an issue on Github if you find it didn't work anymore, thanks!

I remembered that we tried it on Flink in early versions are the result is pretty good.

royguo1988··on TerarkDB, ByteDance's RocksDB replacement
Thanks, tried to log-in & reset my password but didn't receive reset email.
royguo1988··on TerarkDB, ByteDance's RocksDB replacement
We are working on our `all-in-one docs` right now, please watch our repo, thanks! I replied some of the reasons in previous comment.
royguo1988··on TerarkDB, ByteDance's RocksDB replacement
The reasons we did a better job(from our own perspective) than RocksDB are: 1. We moved lots of code out side db_mutex (db mutex is convenient but costs too much) 2. We introduced a new KV separation implementation that we believe is better than RocksDB’s implementation (we didn't hear any production user are using RocksDB's KV separation yet) 3. We introduced a lazy compaction strategy that can delay compaction task while online services are dealing with short-time heavy writing. 4. Other optimizations like time histogram based TTL, pipelined WAL sync.
royguo1988··on TerarkDB, ByteDance's RocksDB replacement
We are working on our `all-in-one docs` which will explain everything.

I want to address that we are not meant to "get rid of" RocksDB (which lots of KV engine claimed). What we want to do is provide another solution for storage engine users with different road path (focusing on new hardware and heavy-write workloads).

For simple use cases, there will be no difference no matter what engine you use.

And for most cases, upgrade your hardware (e.g. SATA SSD to NVMe SSD) or tuning your RocksDB parameters would save you lots time, just make sure you understand what you are doing.

There's no cue for every workloads, try TerarkDB if RocksDB happens not fit your scenario.

royguo1988··on TerarkDB, ByteDance's RocksDB replacement
Thanks for your suggestion, I will update the image soon
royguo1988··on TerarkDB, ByteDance's RocksDB replacement
There are mainly three reasons here:

1. We changed the source code too much that we are not able to merge it back to RocksDB easily (This project started at 2016 as an close-source project) 2. We have different road path with RocksDB (e.g. We will remove a lot of un-used code to make TerarkDB much more light-weight than current version in the future) 3. We have lots of third-party partners (e.g. Intel, on Opatane SSD/Memory and others with ZNS...) may participant in this project so we want to handle all commits ourself to make sure everything is under control.

royguo1988··on TerarkDB, ByteDance's RocksDB replacement
TerarkDB was acquired by Bytedance two years ago and is now using widely in Bytedance's database services.

I am one of the maintainers of this project you can ask any question here.