]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
OpTracker: Sharding logic is implemented to improve performance
authorSomnath Roy <somnath.roy@sandisk.com>
Tue, 9 Sep 2014 01:44:48 +0000 (18:44 -0700)
committerSomnath Roy <somnath.roy@sandisk.com>
Thu, 11 Sep 2014 18:18:04 +0000 (11:18 -0700)
commit3fac790133e26f5bf141324aa660c13188183b89
tree010df769025e8b66c53bde8abdd034b7dc4c07b5
parent8d3f13540bc8fc6b75746a09e7ea266c44ac5091
OpTracker: Sharding logic is implemented to improve performance

Enabling OpTracking is degrading performance significantly. The
main reason for this is the contention in the ops_in_flight_lock
during registration/unregistration. Sharding this lock and hence
the xlist (storing the ops) helped to boost the performance.
Sharding is been done based on the op seq number % num_shards.
atomic64_t is used as data type to protect the global sequence
number of OpTracker. Introduced a lock in the OpHistory to
protect its data structure as ealier it was protected by global
ops_in_flight_lock. This is only accessed during unregistration
and thus not contended.

Signed-off-by: Somnath Roy <somnath.roy@sandisk.com>
src/common/TrackedOp.cc
src/common/TrackedOp.h
src/common/config_opts.h
src/mds/MDS.cc
src/osd/OSD.cc