Sergei Petrunia daab7603f6 Range Locking: Implementation of range locking (#7506)
Summary:
Range Locking - an implementation based on the locktree library

- Add a RangeTreeLockManager and RangeTreeLockTracker which implement
  range locking using the locktree library.
- Point locks are handled as locks on single-point ranges.
- Add a unit test: range_locking_test

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

Reviewed By: akankshamahajan15

Differential Revision: D25320703

Pulled By: cheng-chang

fbshipit-source-id: f86347384b42ba2b0257d67eca0f45f806b69da7
2020-12-22 19:12:36 -08:00
..

The files in this directory originally come from
https://github.com/percona/PerconaFT/.

This directory only includes the "locktree" part of PerconaFT, and its
dependencies.

The following modifications were made:
- Make locktree usable outside of PerconaFT library
- Add shared read-only lock support

The files named *_subst.* are substitutes of the PerconaFT's files, they
contain replacements of PerconaFT's functionality.