...
There are multiple ways to implement state store transactions that present different trade-offs. This proposal includes a single implementation via a secondary RocksDB for uncommitted writes. It also adds a configuration enum RocksDBTransactionalMechanism
to allow other implementations in the future in a backward-compatible way.
StateStore changes
This section covers multiple changes to the state store interfaces. This proposal replaces StateStore#flush
with 2 new methods - StateStore#commit(Long)
and StateStore#recover(Long)
and adds a boolean transactional()
method to determine if a state store is transactional.
...