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
workaround race conditions during `PeriodicWorkScheduler` registration (#7888)
Summary:
This provides a workaround for two race conditions that will be fixed in
a more sophisticated way later. This PR:
(1) Makes the client serialize calls to `Timer::Start()` and `Timer::Shutdown()` (see https://github.com/facebook/rocksdb/issues/7711). The long-term fix will be to make those functions thread-safe.
(2) Makes `PeriodicWorkScheduler` atomically add/cancel work together with starting/shutting down its `Timer`. The long-term fix will be for `Timer` API to offer more specialized APIs so the client will not need to synchronize.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/7888
Test Plan: ran the repro provided in https://github.com/facebook/rocksdb/issues/7881
Reviewed By: jay-zhuang
Differential Revision:
D25990891
Pulled By: ajkr
fbshipit-source-id:
a97fdaebbda6d7db7ddb1b146738b68c16c5be38
Bump the version file to 6.15.3 and update HISTORY.md with fix information.
Attempt to fix build errors around missing compression library includes (#7803)
Summary:
This fixes an issue introduced in https://github.com/facebook/rocksdb/pull/7769 that caused many errors about missing compression libraries to be displayed during compilation, although compilation actually succeeded. This PR fixes the compilation so the compression libraries are only introduced where strictly needed.
It likely needs to be merged into the same branches as https://github.com/facebook/rocksdb/pull/7769 which I think are:
1. master
2. 6.15.fb
3. 6.16.fb
Pull Request resolved: https://github.com/facebook/rocksdb/pull/7803
Reviewed By: ramvadiv
Differential Revision:
D25733743
Pulled By: pdillinger
fbshipit-source-id:
6c04f6864b2ff4a345841d791a89b19e0e3f5bf7
Bump the version file to 6.15.2 and update HISTORY.md with fix information.
Also, fix a merge issue with .circleci/config.yml (missing
install-cmake-on-macos in commands section)
Fix various small build issues, Java API naming (#7776)
Summary:
* Compatibility with older GCC.
* Compatibility with older jemalloc libraries.
* Remove Docker warning when building i686 binaries.
* Fix case inconsistency in Java API naming (potential update to HISTORY.md deferred)
Pull Request resolved: https://github.com/facebook/rocksdb/pull/7776
Reviewed By: akankshamahajan15
Differential Revision:
D25607235
Pulled By: pdillinger
fbshipit-source-id:
7ab0fb7fa7a34e97ed0bec991f5081acb095777d