]> git-server-git.apps.pok.os.sepia.ceph.com Git - rocksdb.git/commit
Allow range deletions in `*TransactionDB` only when safe (#7929)
authorAndrew Kryczka <andrewkr@fb.com>
Fri, 5 Feb 2021 23:55:34 +0000 (15:55 -0800)
committerAndrew Kryczka <andrewkr@fb.com>
Sat, 6 Feb 2021 01:00:34 +0000 (17:00 -0800)
commit5893d5e2a1f27dcdc2ca74f06a7fdb207be0237a
tree57d6365fa27181633cbbcaa85b6c1425811211e5
parentfbed72f03c3d9e4fdca3e5993587ef2559ba6ab9
Allow range deletions in `*TransactionDB` only when safe (#7929)

Summary:
Explicitly reject all range deletions on `TransactionDB` or `OptimisticTransactionDB`, except when the user provides sufficient promises that allow us to proceed safely. The necessary promises are described in the API doc for `TransactionDB::DeleteRange()`. There is currently no way to provide enough promises to make it safe in `OptimisticTransactionDB`.

Fixes https://github.com/facebook/rocksdb/issues/7913.

Pull Request resolved: https://github.com/facebook/rocksdb/pull/7929

Test Plan: unit tests covering the cases it's permitted/rejected

Reviewed By: ltamasi

Differential Revision: D26240254

Pulled By: ajkr

fbshipit-source-id: 2834a0ce64cc3e4c3799e35b885a5e79c2f4f6d9
HISTORY.md
include/rocksdb/utilities/optimistic_transaction_db.h
include/rocksdb/utilities/transaction_db.h
utilities/transactions/optimistic_transaction_db_impl.h
utilities/transactions/optimistic_transaction_test.cc
utilities/transactions/transaction_test.cc
utilities/transactions/write_prepared_txn_db.cc