2 ms·
Can you explain? I thought Rocks was an LSM storage engine and mostly excelled with write heavy work loads.
by bogomipz 9y ago
Can you explain? I thought Rocks was an LSM storage engine and mostly excelled with write heavy work loads.
- PeterZaitsev 9y agoThe benefit of LSM for Write workloads is a lot higher with large data sets. Optimizing BTREE in memory is cheap, BTREE on disk requires a lot of IO LSM however does not require as much disk IO for inserts even if data is much larger than memory
- bogomipz 9y agoI'm not following. Myrocks uses a clustered key for the primary key from what I have read. Isn't this the same as innodb? Is it not a B-Tree? Could you elaborate on what's special about indexes - primary or secondary in Myrocks?
- PeterZaitsev 9y agoMyRocks is LSM based. The LSM is different from BTREE in what you need to do multiple "physical" lookups and merge result to perform one logical lookup. There are some tricks like Bloom Filters are employed to optimize it but it is still not as efficient in memory as BTREE especially for range lookups. Here is some information on WIKIPEDIA https://en.wikipedia.org/wiki/Log-structured_merge-tree https://en.wikipedia.org/wiki/Log-structured_merge-tree
- bogomipz 9y agoRight Cassandra uses bloom filters. I think I may have misinterpreted your originalcomment. Fractal Tree Indexes are interesting as well as they are optimized for hitting the disk: https://www.percona.com/doc/percona-tokudb/ft-index.html https://www.percona.com/doc/percona-tokudb/ft-index.html