rocksdb-sharp icon indicating copy to clipboard operation
rocksdb-sharp copied to clipboard

Add basic transaction support

Open codenaked opened this issue 2 years ago • 3 comments

Minimal changes to support RockDB's TransactionDb/Transaction, including some basic unit tests.

Notes:

  1. 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.
  2. 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.
  3. 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.
  4. Not all Transaction methods were implemented.
  5. Support for OptimisticTransactionDb was not implemented.

Ref https://github.com/curiosity-ai/rocksdb-sharp/issues/1

codenaked avatar Oct 24 '23 15:10 codenaked

Converted to draft while we debug an issue.

codenaked avatar Oct 24 '23 17:10 codenaked

@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 avatar Sep 24 '24 05:09 riemannulus

@riemannulus if you could review the changes and push an updated commit, I can review it this week and merge it back!

theolivenbaum avatar Sep 24 '24 05:09 theolivenbaum