Anybody knows if we can tune RocksDB global compac...
# troubleshooting
j
Anybody knows if we can tune RocksDB global compaction period to make it happen more often that the 30 days? I tried to change TTL property to be hourly (Via
RocksDBOptionsFactory
) to test things out, but I don't really see anything happening on my state after mutliple days of it running
d
Not sure how to change the global compaction period. But I’m curious: what’s your application for it? AFAIK, the 30 day period is only relevant if compaction doesn’t run at any point beforehand. Compaction will run every time the number in memtables hits the L0 limit, and when the L1, L2, etc. levels exceed their target sizes after compactions on higher levels insert a compacted SST file into them. Adjusting the
state.backend.rocksdb.compaction.level.target-file-size-base
and
state.backend.rocksdb.compaction.level.max-size-level-base
may also let you achieve the behavior you’re trying to get.
@Joris Basiglio
j
Our state size have grown immensely across our clusters (tens of Tb) in the past couple months and we are actively looking at processes to reduce it (Using State processing API to identify keys eligible for deletion and backfill the deletion in the cluster, as well as realtime cleanup). State size growth affect our restart time and therefore make our entire OPS process around our clusters more and more dangerous. The problem is that deleting state also greatly increase our state size before this monthly compaction kick in. That's why we would have like to run it on a more frequent cadence (says weekly or 2 times a week) to keep our state size healthy.