Minimal changes to support RockDB's TransactionDb/Transaction, including some basic unit tests.
Notes:
Most of the underly functionality of RocksDb was moved to RocksDbBase in order to avoid having overloads of the Open method available on TransactionDb that are actually instances of RocksDb.
Several Interop methods were duplicated to support transactions. In theory, the existing methods could be updated to support another optional parameter (i.e. if a transaction handle was passed in similar to how column family handles are passed in), but to avoid confusion, new methods were added.
The unit tests only work if a built copy of the RockDB library is included. There wasn't a clean way to include that for the unit tests, since they are built out-of-band.
Not all Transaction methods were implemented.
Support for OptimisticTransactionDb was not implemented.
Minimal changes to support RockDB's TransactionDb/Transaction, including some basic unit tests.
Notes:
RocksDb
was moved toRocksDbBase
in order to avoid having overloads of theOpen
method available onTransactionDb
that are actually instances ofRocksDb
.Ref https://github.com/curiosity-ai/rocksdb-sharp/issues/1