]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
os/bluestore: ExtentMap: reshard only requested range
authorSage Weil <sage@redhat.com>
Fri, 27 Jan 2017 22:25:38 +0000 (17:25 -0500)
committerSage Weil <sage@redhat.com>
Thu, 2 Feb 2017 22:25:55 +0000 (17:25 -0500)
commit40db5b661443f5336c1113252b830f8cdbf0831b
tree4e686768e3497d88eee676d33a59530f30e39caa
parent0819a0f90e6a41558b171b237ebed7f30fc9bb7d
os/bluestore: ExtentMap: reshard only requested range

Only reshard extents in the requested range.

Note that the strategy for unspanning blobs changed; we now span or
unspan specific blobs at the end based on our reshard result instead
of unspanning all at the start.  This keeps the spanning id stable,
which is important because it may be referenced from another that
we aren't even looking at.

Also note that this requires a bit of restructuring: an encode_some may
hit a spanning shard, *requiring* us to reshard, which means we should
always conduct the initial pass through update to discover other reshard
requirements, even if we already know some resharding will be needed.

Signed-off-by: Sage Weil <sage@redhat.com>
src/os/bluestore/BlueStore.cc
src/os/bluestore/BlueStore.h