]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
librbd: improve object map performance under high IOPS workloads 28137/head
authorJason Dillaman <dillaman@redhat.com>
Thu, 28 Feb 2019 21:43:27 +0000 (16:43 -0500)
committerJason Dillaman <dillaman@redhat.com>
Wed, 15 May 2019 21:48:58 +0000 (17:48 -0400)
commitcc92ead9e998f9e6867db801542378e010c52fdd
treea24313d0122a86ddfbfaaa9dbd79ac532daa58a7
parentf13315d0d23ca9175ecf1a1df045887614e197f1
librbd: improve object map performance under high IOPS workloads

Do not zero-fill the BitVector's bitset prior to decoding the data.
Additionally, only read-update-modify the portions of the footer
that are potentially affected by the updated state.

Fixes: http://tracker.ceph.com/issues/38538
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 071671fff64f27943047610fe075a7e98f0f705c)

Conflicts:
src/cls/rbd/cls_rbd.cc
src/cls/rbd/cls_rbd_client.h
src/common/bit_vector.hpp
src/test/common/test_bit_vector.cc
src/test/librbd/test_ObjectMap.cc
Trivial conflicts with bufferlist::begin/cbegin, assert/ceph_assert,
and encode/decode.
src/cls/rbd/cls_rbd.cc
src/cls/rbd/cls_rbd_client.cc
src/cls/rbd/cls_rbd_client.h
src/common/bit_vector.hpp
src/test/cls_rbd/test_cls_rbd.cc
src/test/common/test_bit_vector.cc
src/test/librbd/test_ObjectMap.cc