]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
librbd: deep-copy image copy state machine skips clean objects 33867/head
authorJason Dillaman <dillaman@redhat.com>
Tue, 10 Mar 2020 21:04:59 +0000 (17:04 -0400)
committerJason Dillaman <dillaman@redhat.com>
Tue, 10 Mar 2020 21:21:48 +0000 (17:21 -0400)
commite5a21e904142f8d728ba5de1eecf940b6b8329b5
tree27e19c1d54eb91097dbaf0c53744d2beccc6cd23
parent2b3a46801d3921220c82d9ded54ad76da6db0b91
librbd: deep-copy image copy state machine skips clean objects

If fast-diff is enabled (and valid), the image-copy state machine will
now attempt to skip any objects that are flagged as clean (DIFF_STATE_NONE).
For larger images, this should avoid the need to iterate over potentially
tens or hundreds of thousands of objects.

Fixes: https://tracker.ceph.com/issues/43590
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
src/librbd/deep_copy/ImageCopyRequest.cc
src/librbd/deep_copy/ImageCopyRequest.h
src/test/librbd/deep_copy/test_mock_ImageCopyRequest.cc