rocksdb/utilities
Manuel Ung fb571509a7 WriteUnPrepared: Enable WAL during crash recovery (#6418)
Summary:
Unfortunately, it seems like mysqld reuses xids across machine restarts. When that happens, we could have something like the following happening:

```
BEGIN_PREPARE(unprepared) Put(a) END_PREPARE(xid = 1)
-- crash and recover with Put(a) rolled back as it was not prepared
BEGIN_PREPARE(prepared) Put(b) END_PREPARE(xid = 1)
COMMIT(xid = 1)
-- crash and recover with both a, b
```

To solve this, we will have to log the rollback batch into the WAL during recovery.

WritePrepared already logs the rollback batch into the WAL, if a rollback happens after prepare, so there is no problem there.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/6418

Differential Revision: D19896151

Pulled By: lth

fbshipit-source-id: 2ff65ddc5fe75efd57736fed4b7cd7a109d26609
2020-02-13 18:44:39 -08:00
..
backupable Introduce a new storage specific Env API (#5761) 2019-12-13 14:48:41 -08:00
blob_db BlobDB: ignore trivially moved files when updating the SST<->blob file mapping (#6381) 2020-02-07 12:50:57 -08:00
cassandra Organizing rocksdb/db directory 2019-05-31 11:57:01 -07:00
checkpoint Introduce a new storage specific Env API (#5761) 2019-12-13 14:48:41 -08:00
compaction_filters Comment out unused variables 2018-03-05 13:13:41 -08:00
convenience Auto roll logger to enforce options.keep_log_file_num immediately after a new file is created (#5370) 2019-05-31 10:50:19 -07:00
leveldb_options Change RocksDB License 2017-07-15 16:11:23 -07:00
memory Make clang-analyzer happy (#5821) 2019-09-18 15:25:48 -07:00
merge_operators Apply formatter to recent 200+ commits. (#5830) 2019-09-20 12:04:26 -07:00
option_change_migration Avoid double-compacting data in bottom level in manual compactions (#5138) 2019-04-16 23:32:20 -07:00
options Allow readahead when reading option files. (#6372) 2020-02-07 15:18:26 -08:00
persistent_cache Correct pragma once problem with Bazel on Windows (#6321) 2020-01-21 16:12:43 -08:00
simulator_cache Introduce a new storage specific Env API (#5761) 2019-12-13 14:48:41 -08:00
table_properties_collectors Reduce the number of random iterations in compact_on_deletion_collector_test (#5635) 2019-07-26 15:53:34 -07:00
trace Introduce a new storage specific Env API (#5761) 2019-12-13 14:48:41 -08:00
transactions WriteUnPrepared: Enable WAL during crash recovery (#6418) 2020-02-13 18:44:39 -08:00
ttl Apply formatter to recent 200+ commits. (#5830) 2019-09-20 12:04:26 -07:00
write_batch_with_index Fix crash in Transaction::MultiGet() when num_keys > 32 2019-12-16 20:39:35 -08:00
debug.cc Support GetAllKeyVersions() for non-default cf (#5544) 2019-07-07 22:43:52 -07:00
env_librados_test.cc Move test related files under util/ to test_util/ (#5377) 2019-05-30 11:25:51 -07:00
env_librados.cc utilities/env_librados: copy use bufferlist::iterator (#6395) 2020-02-10 11:31:16 -08:00
env_librados.md Add EnvLibrados - RocksDB Env of RADOS (#1222) 2016-07-21 11:16:34 -07:00
env_mirror_test.cc Move test related files under util/ to test_util/ (#5377) 2019-05-30 11:25:51 -07:00
env_mirror.cc Optionally wait on bytes_per_sync to smooth I/O (#5183) 2019-04-22 11:51:39 -07:00
env_timed_test.cc Move test related files under util/ to test_util/ (#5377) 2019-05-30 11:25:51 -07:00
env_timed.cc Apply modernize-use-override (2nd iteration) 2019-02-14 14:41:36 -08:00
merge_operators.h New API to get all merge operands for a Key (#5604) 2019-08-06 14:26:44 -07:00
object_registry_test.cc The ObjectRegistry class replaces the Registrar and NewCustomObjects.… (#5293) 2019-07-23 17:13:05 -07:00
object_registry.cc The ObjectRegistry class replaces the Registrar and NewCustomObjects.… (#5293) 2019-07-23 17:13:05 -07:00
util_merge_operators_test.cc Move test related files under util/ to test_util/ (#5377) 2019-05-30 11:25:51 -07:00