]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: set min compressed blob size floor at 2x min_alloc_size 11239/head
authorSage Weil <sage@redhat.com>
Tue, 27 Sep 2016 17:59:29 +0000 (13:59 -0400)
committerSage Weil <sage@redhat.com>
Fri, 30 Sep 2016 17:47:23 +0000 (13:47 -0400)
Otherwise there's not point in compressing--we won't be able to
allocation a smaller space to store it.

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

index 307433409e4549b313463ccc7fc895a5e3122700..57cbfb0581884d238d0f206f546858575cb8148a 100644 (file)
@@ -7687,6 +7687,13 @@ int BlueStore::_do_write(
       wctx.target_blob_size > g_conf->bluestore_max_blob_size) {
     wctx.target_blob_size = g_conf->bluestore_max_blob_size;
   }
+  // set the min blob size floor at 2x the min_alloc_size, or else we
+  // won't be able to allocate a smaller extent for the compressed
+  // data.
+  if (wctx.compress &&
+      wctx.target_blob_size < min_alloc_size * 2) {
+    wctx.target_blob_size = min_alloc_size * 2;
+  }
 
   dout(20) << __func__ << " prefer csum_order " << wctx.csum_order
           << " target_blob_size 0x" << std::hex << wctx.target_blob_size