I have a few column families which have references to each other -- to construct a "full object" I need to join data across them. The upstream providing me with data often provides updates across cross-referenced items in multiple column families around the same time, but there's no guarantee about ordering. When I get an update to one of them, I need to do a lookup of the referenced values to construct the full object for my application to use. Ideally, I want these reads-of-recently-written-data to hit a cache so that I don't end up doing 1 or more read IOs per item that I write.
I know RocksDB keeps writes in RAM in a MemTable before flushing data into an SST file on disk, but I couldn't find an answer in the documentation about whether writes which have been flushed ever enter the LRU cache. Is allowing the MemTables to get really large the best / only way for me to tune the write caching behavior?
From the Speedb Hive:
there is a parameter in table_options called: prepopulate_block_cache the default is disabled but you can set it to flush-only.
You can find the Speedb hive here and (once you've registered) the link to the thread with your question here, if you have more questions or need additional info