From 98e92ebde4dc9b2520b364af6d2c2d27b92556a0 Mon Sep 17 00:00:00 2001 From: Fuheng Zhao Date: Mon, 26 Jul 2021 09:36:55 -0700 Subject: [PATCH] set local registry to null in destructor --- fdbserver/VersionedBTree.actor.cpp | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/fdbserver/VersionedBTree.actor.cpp b/fdbserver/VersionedBTree.actor.cpp index 74b46638cc..8d2cf91e29 100644 --- a/fdbserver/VersionedBTree.actor.cpp +++ b/fdbserver/VersionedBTree.actor.cpp @@ -1595,10 +1595,14 @@ struct RedwoodMetrics { redwoodHistogramRegistry = new HistogramRegistry(); kvSizeWritten = Histogram::getHistogram( LiteralStringRef("kvSize"), LiteralStringRef("Written"), Histogram::Unit::bytes, redwoodHistogramRegistry); - kvSizeReadByGet = Histogram::getHistogram( - LiteralStringRef("kvSize"), LiteralStringRef("ReadByGet"), Histogram::Unit::bytes, redwoodHistogramRegistry); - kvSizeReadByGetRange = Histogram::getHistogram( - LiteralStringRef("kvSize"), LiteralStringRef("ReadByGetRange"), Histogram::Unit::bytes, redwoodHistogramRegistry); + kvSizeReadByGet = Histogram::getHistogram(LiteralStringRef("kvSize"), + LiteralStringRef("ReadByGet"), + Histogram::Unit::bytes, + redwoodHistogramRegistry); + kvSizeReadByGetRange = Histogram::getHistogram(LiteralStringRef("kvSize"), + LiteralStringRef("ReadByGetRange"), + Histogram::Unit::bytes, + redwoodHistogramRegistry); clear(redwoodHistogramRegistry); } @@ -1616,6 +1620,24 @@ struct RedwoodMetrics { startTime = g_network ? now() : 0; } + + ~RedwoodMetrics() { + kvSizeWritten.clear(); + kvSizeReadByGet.clear(); + kvSizeReadByGetRange.clear(); + for (RedwoodMetrics::Level& level : levels) { + level.buildFillPctSketch.clear(); + level.modifyFillPctSketch.clear(); + level.buildStoredPctSketch.clear(); + level.modifyStoredPctSketch.clear(); + level.buildItemCountSketch.clear(); + level.modifyItemCountSketch.clear(); + } + if (redwoodHistogramRegistry) + delete redwoodHistogramRegistry; + redwoodHistogramRegistry = nullptr; + } + // btree levels and one extra level for non btree level. Level levels[btreeLevels + 1]; metrics metric;