rocksdb
rocksdb copied to clipboard
Add.read options.cache sst file iter
This PR resolves #10591:
DB Iterator is an heavy object and it should be reused if possible, thus when DB Iterator is reused the underlying SST's should also be reused, we have add the SST Iter cache to LevelIterator.
Failed unit test are all passed
With env CACHE_SST_FILE_ITER set to 1, ReadOptions::cache_sst_file_iter will be set to true by default, thus all unit test can be reused.
There are still 2 unit test failed because SST File Iterator is cached, I just skip the corresponding ASSERT when cache_sst_file_iter is set to 1.