]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
os/bluestore: allocate entire write in one go 18033/head
authorSage Weil <sage@redhat.com>
Thu, 10 Aug 2017 20:44:59 +0000 (16:44 -0400)
committerxie xingguo <xie.xingguo@zte.com.cn>
Fri, 29 Sep 2017 02:11:34 +0000 (10:11 +0800)
commitf9d0442ca50078224b72f9876d2fed41fd409be6
tree66a2d8333bc8bdf439ba379a799423e1462e52f0
parent9915a2f600788c37fb42f39a766ce93b9ae4d816
os/bluestore: allocate entire write in one go

On the first pass through the writes, compress data and calculate a final
amount of space we need to allocate.  On the second pass, assign the
extents to blobs and queue the writes.

This allows us to do a single allocation for all blobs, which will lead
to less fragmentation and a much better write pattern.

Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit e200f358499af8e3acb6ac4f675cc167433b53ec)
src/os/bluestore/BlueStore.cc
src/os/bluestore/BlueStore.h