]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: compact full epochs also 7446/head
authorKefu Chai <kchai@redhat.com>
Thu, 28 Jan 2016 10:09:53 +0000 (02:09 -0800)
committerSage Weil <sage@redhat.com>
Sat, 30 Jan 2016 13:57:00 +0000 (08:57 -0500)
by compacting the ${prefix}.${start}..${prefix}..${end} does not
necessary compact the range of ${prefix}."full_"${start}..
${prefix}."full_"${end}. so when more and more epochs get trimmed
with out a full range compaction, the size of monitor store could
be very large.

Fixes: #14537
Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 93d633a25ad8c36c972bb766c38187e2612041e1)

src/mon/PaxosService.cc

index 4bdffc285f4631f4a350c47e33ed028a5127cf8e..c87cebc3da092db2ad7c2102e5e6b811df31b73a 100644 (file)
@@ -383,6 +383,9 @@ void PaxosService::trim(MonitorDBStore::TransactionRef t,
   if (g_conf->mon_compact_on_trim) {
     dout(20) << " compacting prefix " << get_service_name() << dendl;
     t->compact_range(get_service_name(), stringify(from - 1), stringify(to));
+    t->compact_range(get_service_name(),
+                    mon->store->combine_strings(full_prefix_name, from - 1),
+                    mon->store->combine_strings(full_prefix_name, to));
   }
 }