...
One issue with both the existing RocksDBStore
and KIP-844 Transactional StateStores that is not resolved by WriteBatchWithIndex
is that to guarantee consistency with the Task state checkpointing, it is required to explicitly flush the memtables on every commit. This is not what RocksDB was designed for, and leads to sub-optimal performance, especially for lower throughput stores, where many small sstable files are created. This increased "write-amplification" increases pressure on RocksDB's compaction threads, as they have more sstables to compact together.
...