rocksdb/java
Manuel Ung b9846370e9 WriteUnPrepared: Add support for recovering WriteUnprepared transactions (#4078)
Summary:
This adds support for recovering WriteUnprepared transactions through the following changes:
- The information in `RecoveredTransaction` is extended so that it can reference multiple batches.
- `MarkBeginPrepare` is extended with a bool indicating whether it is an unprepared begin, and this is passed down to `InsertRecoveredTransaction` to indicate whether the current transaction is prepared or not.
- `WriteUnpreparedTxnDB::Initialize` is overridden so that it will rollback unprepared transactions from the recovered transactions. This can be done without updating the prepare heap/commit map, because this is before the DB has finished initializing, and after writing the rollback batch, those data structures should not contain information about the rolled back transaction anyway.

Commit/Rollback of live transactions is still unimplemented and will come later.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/4078

Differential Revision: D8703382

Pulled By: lth

fbshipit-source-id: 7e0aada6c23bd39299f1f20d6c060492e0e6b60a
2018-07-06 17:59:13 -07:00
..
benchmark/src/main/java/org/rocksdb/benchmark Expose max_background_jobs option in RocksJava 2017-09-20 10:26:37 -07:00
crossbuild RocksJava build target for Docker on ppc64le 2017-10-02 11:11:56 -07:00
rocksjni WriteUnPrepared: Add support for recovering WriteUnprepared transactions (#4078) 2018-07-06 17:59:13 -07:00
samples/src/main/java Add TransactionDB and OptimisticTransactionDB to the Java API 2018-03-02 10:34:13 -08:00
src check if data size exceeds java array vm limit when it is copied in jni (#3850) 2018-06-29 16:13:06 -07:00
CMakeLists.txt Added support for SstFileManager to RocksJava 2018-04-06 21:26:32 -07:00
HISTORY-JAVA.md Update JAVA-HISTORY.md for v3.13 2015-08-04 18:12:58 -07:00
jdb_bench.sh Suppress lint in old files 2018-01-29 12:56:42 -08:00
Makefile Added support for SstFileManager to RocksJava 2018-04-06 21:26:32 -07:00
RELEASE.md Fixed packaging of java crossbuild jar by forcing all compiled binaries to be output to the java/target directory. The uber crossbuild jar is then assembled within the java/target directory. 2015-10-12 20:29:58 -04:00
rocksjni.pom Update java/rocksjni.pom 2017-07-18 13:12:23 -07:00