]> git-server-git.apps.pok.os.sepia.ceph.com Git - rocksdb.git/commit
WriteAtPrepare: Efficient read from snapshot list
authorMaysam Yabandeh <myabandeh@fb.com>
Sat, 26 Aug 2017 07:53:13 +0000 (00:53 -0700)
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>
Sat, 26 Aug 2017 08:00:38 +0000 (01:00 -0700)
commitfbfa3e7a43526bdf38183f78383db62b430e3885
tree1ae5e163f2d89b8272a443a6ca2a6f6db56ba8c9
parentb01f426f56c83815d3664f3ba69ff758fcdc8772
WriteAtPrepare: Efficient read from snapshot list

Summary:
Divide the old snapshots to two lists: a few that fit into a cached array and the rest in a vector, which is expected to be empty in normal cases. The former is to optimize concurrent reads from snapshots without requiring locks. It is done by an array of std::atomic, from which std::memory_order_acquire reads are compiled to simple read instructions in most of the x86_64 architectures.
Closes https://github.com/facebook/rocksdb/pull/2758

Differential Revision: D5660504

Pulled By: maysamyabandeh

fbshipit-source-id: 524fcf9a8e7f90a92324536456912a99aaa6740c
db/snapshot_impl.h
include/rocksdb/utilities/transaction_db.h
utilities/transactions/pessimistic_transaction_db.cc
utilities/transactions/pessimistic_transaction_db.h
utilities/transactions/transaction_test.cc