rocksdb-sharp
rocksdb-sharp copied to clipboard
Add basic transaction support
Minimal changes to support RockDB's TransactionDb/Transaction, including some basic unit tests.
Notes:
- Most of the underly functionality of
RocksDbwas moved toRocksDbBasein order to avoid having overloads of theOpenmethod available onTransactionDbthat are actually instances ofRocksDb. - 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.
Ref https://github.com/curiosity-ai/rocksdb-sharp/issues/1
Converted to draft while we debug an issue.
@theolivenbaum @codenaked If there are no further updates to this PR and it remains unmaintained, I would like to take this PR and merge it.
@riemannulus if you could review the changes and push an updated commit, I can review it this week and merge it back!