As you know, RocksDB has an option to cache both index blocks and filter blocks in block cache (cache_index_and_filter_blocks option). I found its default value was set to “FALSE”. Is there any reason RocksDB does not fully utilize this feature?
Actually I also see that for RocksDB performance data in RocksDB home page, they did NOT set that value to true. This means they also used RocksDB with default value (i.e., false). Intuitively, if we set that flag to ‘true’, we could significantly reduce Read Amplification.
If we set it true, most (all) of the RocksDB block cache space will be full of index and filter blocks (instead of data block). Consequently, it will eventually hurt overall read performance because RocksDB will reduce the block cache hit chance (i.e., indexing data is stored in the block cache and there is no/less space for caching data)?
I really appreciate your answers.
--
You received this message because you are subscribed to the Google Groups "rocksdb" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rocksdb+unsubscribe@googlegroups.com.
To post to this group, send email to roc...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rocksdb/e24f3ef5-eaf3-4913-9a78-4e43b743c062%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "rocksdb" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rocksdb+unsubscribe@googlegroups.com.
To post to this group, send email to roc...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rocksdb/92f86d00-6625-4ab6-8a1f-284d51516f95%40googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to rocksdb+u...@googlegroups.com.
To post to this group, send email to roc...@googlegroups.com.
Thanks for the answers Mark and Igor.Yes, I totally get the point of overhead required by the cache component. Siying mentioned before that CLOCK should help reducing this overhead (as hits are usually cheaper than LRU). Maybe overhead could be further reduced to a point where it does not impact performance so much, but it will always be there.And the insight that an index block in L0 is never colder was very helpful. I wonder if splitting the index block into smaller blocks (same size of a data block maybe, resembling a small B+Tree) would help, and in this case the scenario of an index block in L0 being colder than a data block in L3 could happen.
The size of the index/filter varies based on the configuration but for a SST of size 256MB the index/filter block of size 0.5/5MB is typical, which is much larger than the typical data block size of 4-32KB.
--
You received this message because you are subscribed to the Google Groups "rocksdb" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rocksdb+unsubscribe@googlegroups.com.
To post to this group, send email to roc...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rocksdb/eb0a2780-dfaf-4b49-896d-01e2ea81b954%40googlegroups.com.