-
Notifications
You must be signed in to change notification settings - Fork 6
Home
rockeet edited this page Aug 23, 2018
·
25 revisions
Warning: Without a license, libterark-zip-rocksdb
is running on trial mode, it will expire after one month, DO NOT use it in production. For production use, please contact us to get a commercial license.
TerarkSQL is a MySQL distribution that uses TerarkDB as its storage engine, We integrated our TerarkDB into MySQL via MyRocks
.
-
MyRocks is a MySQL distribution that developed by Facebook, based on
MySQL-5.6
and uses RocksDB as storage engine. It has better performance and less memory cost than original MySQL. - TerarkDB a RocksDB distribution that based on Terark's searchable compression technology, which gives MyRocks better compression ratio and random read performance.
TerarkDB is fully compatible with RocksDB, that means TerarkSQL has exactly the same API with original RocksDB.
As a storage engine of MySQL, RocksDB has already made a great improvement than InnoDB, but TerarkDB make it even better.
- TerarkDB has a MUCH BETTER compression ratio than original RocksDB
- For disk file size, TerarkDB has much better compression ratio.
- For memory usage, TerarkDB has even better advantages: searchable compression, solved double cache problem(can't be solved under block compression).
- Comparing to the traditional storage engine, TerarkDB can handle more data under the same memory while others can only take a little part of the data.
- TerarkDB has a MUCH FASTER random read performance than original RocksDB
- TerarkDB can search on compressed dataset without decompression while block compression needs decompression before reading.
- Random reading improved 200X than original RocksDB at the engine level, 10X at MySQL layer since MySQL has other performance bottlenecks.
- MyRocks is based on MySQL-5.6 and backported some new features in MySQL-5.7
- MyRocks has some restrictions comparing to original MySQL-5.6: MyRocks-limitations
- TerarkDB has a slower compression speed than original RocksDB (Since it has heavier computing)
- TerarkDB's sequential reading speed is a little bit slower than original RocksDB
- TerarkDB's sequential reading has no obvious advantage than random reading
- Traditional engines like RocksDB/InnoDB has a much better performance in sequential reading comparing to random reading.
These workloads are not recommended:
- Heavy writing (e.g. 30% writing in total)
- OLAP ( which normally requires a lot of sequential reading)