]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cls/journal: use EC pool stripe width for padding appends 34608/head
authorMykola Golub <mgolub@suse.com>
Fri, 17 Apr 2020 11:40:41 +0000 (12:40 +0100)
committerMykola Golub <mgolub@suse.com>
Fri, 17 Apr 2020 11:40:41 +0000 (12:40 +0100)
to avoid ECSubRead ops to reencode a partially updated stripe.

Signed-off-by: Mykola Golub <mgolub@suse.com>
src/cls/journal/cls_journal.cc

index fb1267fba10fe095cf75d80ae2dc8d75f609d712..db5a6854ad0de3beba977c3b856c080485808c3c 100644 (file)
@@ -1183,6 +1183,11 @@ int journal_object_append(cls_method_context_t hctx, bufferlist *in,
     min_alloc_size = 8;
   }
 
+  auto stripe_width = cls_get_pool_stripe_width(hctx);
+  if (stripe_width > 0) {
+    min_alloc_size = round_up_to(min_alloc_size, stripe_width);
+  }
+
   CLS_LOG(20, "pad to %" PRIu64, min_alloc_size);
 
   auto end = offset + data.length();