[
https://issues.apache.org/jira/browse/FLINK-26800?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17513176#comment-17513176
]
Yun Tang commented on FLINK-26800:
----------------------------------
[~liuyufei], RocksDBJava does not publish too many details about
{{WriteBufferManager}}, and we cannot track the stats of each column family
under current status. I think you could create such issue or PR to RocksDB
community and we could then cherry-pick them back if necessary.
> write small data file using share write buffer manager
> ------------------------------------------------------
>
> Key: FLINK-26800
> URL: https://issues.apache.org/jira/browse/FLINK-26800
> Project: Flink
> Issue Type: Bug
> Components: Runtime / State Backends
> Affects Versions: 1.12.7
> Reporter: YufeiLiu
> Priority: Major
>
> When setting config {{state.backend.rocksdb.memory.fixed-per-slot}}, all
> rocksdb instances in same slot are using shared WriteBufferManager.
> I meet a extreme circumstances, there are 2 rocksdb using a
> WriteBufferManager size is 32M, if rocksdb-1 write (32*0.9)M data and won't
> have more data in a while, it won't trigger flush, then rocksdb-2 start
> writing data, it will trigger flush every single record and write many small
> file, spend a lot of time of backgroud compaction.
> rocksdb-2 only flush current CF data, it won't recovery until rocksdb-1 flush
> data in memtable.
> I can disable memory managed option to avoid this case, but I can't limit the
> memory usage.
> Maybe can create a tracker monitor all rocksdb memory usage, trigger a force
> flush if it's necessary?
> [1] RocksDB Write Buffer Manager
> https://github.com/facebook/rocksdb/wiki/Write-Buffer-Manager
--
This message was sent by Atlassian Jira
(v8.20.1#820001)