From f6c6767c51776973e3f205ec01841dbfa58436b4 Mon Sep 17 00:00:00 2001 From: Mykola Golub Date: Fri, 17 Apr 2020 12:40:41 +0100 Subject: [PATCH] cls/journal: use EC pool stripe width for padding appends to avoid ECSubRead ops to reencode a partially updated stripe. Signed-off-by: Mykola Golub --- src/cls/journal/cls_journal.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/cls/journal/cls_journal.cc b/src/cls/journal/cls_journal.cc index fb1267fba10..db5a6854ad0 100644 --- a/src/cls/journal/cls_journal.cc +++ b/src/cls/journal/cls_journal.cc @@ -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(); -- 2.47.3