]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
os/bluestore: move cached items around on collection split
authorSage Weil <sage@redhat.com>
Fri, 17 Mar 2017 14:13:22 +0000 (10:13 -0400)
committerSage Weil <sage@redhat.com>
Tue, 21 Mar 2017 18:56:30 +0000 (13:56 -0500)
commit9732b6c8e90965bd6a9d3a0eed899ba0c68603e1
treef5c3cc5c3476b31fdc912006388f16cce0d5b7ed
parente4d547ede7f04c02f6514d466f534396f435b57e
os/bluestore: move cached items around on collection split

We've been avoiding doing this for a while and it has finally caught up
with us: the SharedBlob may outlive the split due to deferred IO, and
a read on the child collection may load a competing Blob and SharedBlob
and read from the on-disk blocks that haven't been written yet.

Fix by preserving the one-SharedBlob-instance invariant by moving cache
items to the new Collection and cache shard like we should have from the
beginning.

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