rocksdb/utilities/transactions
Levi Tamasi 61932cdf1d Add blob support to DBIter (#7731)
Summary:
The patch adds iterator support to the integrated BlobDB implementation.
Whenever a blob reference is encountered during iteration, the corresponding
blob is retrieved by calling `Version::GetBlob`, assuming the `expose_blob_index`
(formerly `allow_blob`) flag is *not* set. (Note: the flag is set by the old stacked
BlobDB implementation, which has its own blob file handling/blob retrieval logic.)

In addition, `DBIter` now uniformly returns `Status::NotSupported` with the error
message `"BlobDB does not support merge operator."` when encountering a
blob reference while performing a merge (instead of potentially returning a
message that implies the database should be opened using the stacked BlobDB's
`Open`.)

TODO: We can implement support for lazily retrieving the blob value (or in other
words, bypassing the retrieval of blob values based on key) by extending the `Iterator`
API with a new `PrepareValue` method (similarly to `InternalIterator`, which already
supports lazy values).

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

Test Plan: `make check`

Reviewed By: riversand963

Differential Revision: D25256293

Pulled By: ltamasi

fbshipit-source-id: c39cd782011495a526cdff99c16f5fca400c4811
2020-12-04 21:29:38 -08:00
..
lock Fix unchecked statuses for transaction_test (#7572) 2020-10-21 14:03:59 -07:00
optimistic_transaction.cc Abstract out LockManager interface (#7532) 2020-10-19 10:14:42 -07:00
optimistic_transaction.h Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
optimistic_transaction_db_impl.cc Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
optimistic_transaction_db_impl.h Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
optimistic_transaction_test.cc Fail early when merge_operator not configured (#7667) 2020-11-16 20:39:01 -08:00
pessimistic_transaction.cc Fix unchecked statuses for transaction_test (#7572) 2020-10-21 14:03:59 -07:00
pessimistic_transaction.h Abstract out LockManager interface (#7532) 2020-10-19 10:14:42 -07:00
pessimistic_transaction_db.cc Abstract out LockManager interface (#7532) 2020-10-19 10:14:42 -07:00
pessimistic_transaction_db.h Abstract out LockManager interface (#7532) 2020-10-19 10:14:42 -07:00
snapshot_checker.cc Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
transaction_base.cc Fix unchecked statuses for transaction_test (#7572) 2020-10-21 14:03:59 -07:00
transaction_base.h Fix unchecked statuses for transaction_test (#7572) 2020-10-21 14:03:59 -07:00
transaction_db_mutex_impl.cc Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
transaction_db_mutex_impl.h Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
transaction_test.cc Fix unchecked statuses for transaction_test (#7572) 2020-10-21 14:03:59 -07:00
transaction_test.h Skip fsync in txn tests (#7641) 2020-11-06 14:25:14 -08:00
transaction_util.cc Replace tracked_keys with a new LockTracker interface in TransactionDB (#7013) 2020-08-06 12:38:00 -07:00
transaction_util.h Replace tracked_keys with a new LockTracker interface in TransactionDB (#7013) 2020-08-06 12:38:00 -07:00
write_prepared_transaction_test.cc Disable fsync in SeqAdvanceConcurrentTest (#7302) 2020-08-24 13:22:06 -07:00
write_prepared_txn.cc Fix unchecked statuses for transaction_test (#7572) 2020-10-21 14:03:59 -07:00
write_prepared_txn.h Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
write_prepared_txn_db.cc Add blob support to DBIter (#7731) 2020-12-04 21:29:38 -08:00
write_prepared_txn_db.h Abstract out LockManager interface (#7532) 2020-10-19 10:14:42 -07:00
write_unprepared_transaction_test.cc Revert "Update googletest from 1.8.1 to 1.10.0 (#6808)" (#6923) 2020-06-03 15:55:03 -07:00
write_unprepared_txn.cc Fix unchecked statuses for transaction_test (#7572) 2020-10-21 14:03:59 -07:00
write_unprepared_txn.h Replace tracked_keys with a new LockTracker interface in TransactionDB (#7013) 2020-08-06 12:38:00 -07:00
write_unprepared_txn_db.cc Add blob support to DBIter (#7731) 2020-12-04 21:29:38 -08:00
write_unprepared_txn_db.h WriteUnPrepared: Pass in correct subbatch count during rollback (#6463) 2020-02-28 11:19:32 -08:00