Yue Ma created FLINK-32833:
------------------------------

             Summary: Rocksdb CacheIndexAndFilterBlocks must be true when using 
shared memory
                 Key: FLINK-32833
                 URL: https://issues.apache.org/jira/browse/FLINK-32833
             Project: Flink
          Issue Type: Improvement
          Components: Runtime / State Backends
    Affects Versions: 1.17.1
            Reporter: Yue Ma


Currently in RocksDBResourceContainer#getColumnOptions, if sharedResources is 
used, blockBasedTableConfig will add the following configuration by default.

            blockBasedTableConfig.setBlockCache(blockCache);
            blockBasedTableConfig.setCacheIndexAndFilterBlocks(true);
            
blockBasedTableConfig.setCacheIndexAndFilterBlocksWithHighPriority(true);
            blockBasedTableConfig.setPinL0FilterAndIndexBlocksInCache(true);

In my understanding, these configurations can help flink better manage the 
memory of rocksdb and save some memory overhead in some scenarios. But this may 
not be the best practice, mainly for the following reasons:
1. After CacheIndexAndFilterBlocks is set to true, it may cause index and 
filter miss when reading, resulting in performance degradation.
2. These parameters may not be bound together with whether shared memory is 
used, or some configurations should be supported separately to decide whether 
to enable these features



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to