[ 
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)

Reply via email to