]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
mds: optimize acquiring locks 23198/head
authorYan, Zheng <zyan@redhat.com>
Sat, 7 Jul 2018 05:14:19 +0000 (13:14 +0800)
committerYan, Zheng <zyan@redhat.com>
Tue, 28 Aug 2018 04:46:04 +0000 (21:46 -0700)
commit141203140afe2a8c405604c4c15826f1755f7cee
tree4fdd0689d2c411368350f10b6e27f56711b977f4
parentd12f3e311854d372d69dbf998e552a875ea9f621
mds: optimize acquiring locks

There are several changes:
 - use single LockOp vector to pass all locks (rdlock, wrlock, xlock)
   to Locker::acquire_locks(). this avoids memory allocation overhead
   of using multimple set
 - change MutationImpl::locks to LockOp set, use it to track both locks
   and locks' types.
 - use empalce_hint to optimize insertion of lock to MutationImpl::locks
 - use iterator to optimize removal of lock from MutationImpl::locks

Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
src/mds/CInode.cc
src/mds/Locker.cc
src/mds/Locker.h
src/mds/MDCache.cc
src/mds/Migrator.cc
src/mds/Migrator.h
src/mds/Mutation.cc
src/mds/Mutation.h
src/mds/Server.cc
src/mds/Server.h