Skip to content

Commit 08e6b7e

Browse files
Merge 71ceb8c into 0eb74d1
2 parents 0eb74d1 + 71ceb8c commit 08e6b7e

File tree

7 files changed

+252
-262
lines changed

7 files changed

+252
-262
lines changed

ydb/core/tx/columnshard/blobs_action/abstract/blob_set.h

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#pragma once
22
#include <ydb/core/tx/columnshard/common/tablet_id.h>
33
#include <ydb/core/tx/columnshard/blob.h>
4+
#include <ydb/core/util/gen_step.h>
45

56
#include <ydb/library/accessor/accessor.h>
67
#include <ydb/library/services/services.pb.h>
@@ -44,6 +45,59 @@ class TTabletByBlob {
4445

4546
};
4647

48+
class TBlobsByGenStep {
49+
private:
50+
struct Comparator {
51+
bool operator()(const TLogoBlobID& l, const TLogoBlobID& r) const {
52+
TGenStep gsl(l);
53+
TGenStep gsr(r);
54+
if (gsl == gsr) {
55+
return l < r;
56+
} else {
57+
return gsl < gsr;
58+
}
59+
}
60+
};
61+
std::set<TLogoBlobID, Comparator> Blobs;
62+
public:
63+
[[nodiscard]] bool Add(const TLogoBlobID& blobId) {
64+
return Blobs.emplace(blobId).second;
65+
}
66+
[[nodiscard]] bool Remove(const TLogoBlobID& blobId) {
67+
return Blobs.erase(blobId);
68+
}
69+
bool IsEmpty() const {
70+
return Blobs.empty();
71+
}
72+
ui32 GetSize() const {
73+
return Blobs.size();
74+
}
75+
76+
TGenStep GetMinGenStepVerified() const {
77+
AFL_VERIFY(Blobs.size());
78+
return TGenStep(*Blobs.begin());
79+
}
80+
81+
template <class TActor>
82+
bool ExtractTo(const TGenStep includeBorder, const ui32 countLimit, const TActor& actor) {
83+
ui32 idx = 0;
84+
for (auto it = Blobs.begin(); it != Blobs.end(); ++it) {
85+
TGenStep gs(*it);
86+
if (includeBorder < gs) {
87+
Blobs.erase(Blobs.begin(), it);
88+
return true;
89+
}
90+
if (++idx > countLimit) {
91+
Blobs.erase(Blobs.begin(), it);
92+
return false;
93+
}
94+
actor(gs, *it);
95+
}
96+
Blobs.clear();
97+
return true;
98+
}
99+
};
100+
47101
class TTabletsByBlob {
48102
private:
49103
THashMap<TUnifiedBlobId, THashSet<TTabletId>> Data;

ydb/core/tx/columnshard/blobs_action/bs/blob_manager.cpp

Lines changed: 108 additions & 120 deletions
Large diffs are not rendered by default.

ydb/core/tx/columnshard/blobs_action/bs/blob_manager.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ class TBlobManager : public IBlobManager, public TCommonBlobsTracker {
145145
ui32 CurrentStep;
146146
std::optional<TGenStep> CollectGenStepInFlight;
147147
// Lists of blobs that need Keep flag to be set
148-
std::map<TGenStep, std::set<TLogoBlobID>> BlobsToKeep;
148+
TBlobsByGenStep BlobsToKeep;
149149
// Lists of blobs that need DoNotKeep flag to be set
150150
TTabletsByBlob BlobsToDelete;
151151

@@ -173,7 +173,7 @@ class TBlobManager : public IBlobManager, public TCommonBlobsTracker {
173173
virtual void DoSaveBlobBatchOnExecute(const TBlobBatch& blobBatch, IBlobManagerDb& db) override;
174174
virtual void DoSaveBlobBatchOnComplete(TBlobBatch&& blobBatch) override;
175175
void DrainDeleteTo(const TGenStep& dest, TGCContext& gcContext);
176-
[[nodiscard]] bool DrainKeepTo(const TGenStep& dest, TGCContext& gcContext, const bool controlCapacity = true);
176+
[[nodiscard]] bool DrainKeepTo(const TGenStep& dest, TGCContext& gcContext);
177177
public:
178178
TBlobManager(TIntrusivePtr<TTabletStorageInfo> tabletInfo, const ui32 gen, const TTabletId selfTabletId);
179179

@@ -215,11 +215,11 @@ class TBlobManager : public IBlobManager, public TCommonBlobsTracker {
215215
const std::shared_ptr<TBlobManager>& manager, const std::shared_ptr<NDataSharing::TStorageSharedBlobsManager>& sharedBlobsInfo,
216216
const std::shared_ptr<NBlobOperations::TRemoveGCCounters>& counters) noexcept;
217217

218-
void OnGCFinishedOnExecute(const TGenStep& genStep, IBlobManagerDb& db);
219-
void OnGCFinishedOnComplete(const TGenStep& genStep);
218+
void OnGCFinishedOnExecute(const std::optional<TGenStep>& genStep, IBlobManagerDb& db);
219+
void OnGCFinishedOnComplete(const std::optional<TGenStep>& genStep);
220220

221-
void OnGCStartOnExecute(const TGenStep& genStep, IBlobManagerDb& db);
222-
void OnGCStartOnComplete(const TGenStep& genStep);
221+
void OnGCStartOnExecute(const std::optional<TGenStep>& genStep, IBlobManagerDb& db);
222+
void OnGCStartOnComplete(const std::optional<TGenStep>& genStep);
223223

224224
TBlobManagerCounters GetCountersUpdate() {
225225
TBlobManagerCounters res = CountersUpdate;
@@ -239,7 +239,7 @@ class TBlobManager : public IBlobManager, public TCommonBlobsTracker {
239239
bool ExtractEvicted(TEvictedBlob& evict, TEvictMetadata& meta, bool fromDropped = false);
240240

241241
TGenStep EdgeGenStep() const {
242-
return CollectGenStepInFlight ? *CollectGenStepInFlight : LastCollectedGenStep;
242+
return CollectGenStepInFlight ? *CollectGenStepInFlight : std::max(GCBarrierPreparation, LastCollectedGenStep);
243243
}
244244
};
245245

ydb/core/tx/columnshard/blobs_action/bs/gc.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ bool TGCTask::DoOnCompleteTxBeforeCleaning(NColumnShard::TColumnShard& /*self*/,
3131
return true;
3232
}
3333

34-
TGCTask::TGCTask(const TString& storageId, TGCListsByGroup&& listsByGroupId, const TGenStep& collectGenStepInFlight, std::deque<TUnifiedBlobId>&& keepsToErase,
34+
TGCTask::TGCTask(const TString& storageId, TGCListsByGroup&& listsByGroupId, const std::optional<TGenStep>& collectGenStepInFlight, std::deque<TUnifiedBlobId>&& keepsToErase,
3535
const std::shared_ptr<TBlobManager>& manager, TBlobsCategories&& blobsToRemove, const std::shared_ptr<TRemoveGCCounters>& counters,
3636
const ui64 tabletId, const ui64 currentGen)
3737
: TBase(storageId, std::move(blobsToRemove), counters)
@@ -65,8 +65,8 @@ std::unique_ptr<TEvBlobStorage::TEvCollectGarbage> TGCTask::BuildRequest(const T
6565
("count", it->second.RequestsCount);
6666
auto result = std::make_unique<TEvBlobStorage::TEvCollectGarbage>(
6767
TabletId, CurrentGen, PerGenerationCounter.Val(),
68-
address.GetChannelId(), true,
69-
CollectGenStepInFlight.Generation(), CollectGenStepInFlight.Step(),
68+
address.GetChannelId(), !!CollectGenStepInFlight,
69+
CollectGenStepInFlight ? CollectGenStepInFlight->Generation() : 0, CollectGenStepInFlight ? CollectGenStepInFlight->Step() : 0,
7070
new TVector<TLogoBlobID>(it->second.KeepList.begin(), it->second.KeepList.end()),
7171
new TVector<TLogoBlobID>(it->second.DontKeepList.begin(), it->second.DontKeepList.end()),
7272
TInstant::Max(), true);

ydb/core/tx/columnshard/blobs_action/bs/gc.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class TGCTask: public IBlobsGCAction {
2121
using TGCListsByGroup = THashMap<TBlobAddress, TGCLists>;
2222
private:
2323
TGCListsByGroup ListsByGroupId;
24-
const TGenStep CollectGenStepInFlight;
24+
const std::optional<TGenStep> CollectGenStepInFlight;
2525
const ui64 TabletId;
2626
const ui64 CurrentGen;
2727
std::deque<TUnifiedBlobId> KeepsToErase;
@@ -35,11 +35,11 @@ class TGCTask: public IBlobsGCAction {
3535
virtual bool DoOnCompleteTxBeforeCleaning(NColumnShard::TColumnShard& self, const std::shared_ptr<IBlobsGCAction>& taskAction) override;
3636

3737
virtual bool DoIsEmpty() const override {
38-
return false;
38+
return !CollectGenStepInFlight && KeepsToErase.empty();
3939
}
4040

4141
public:
42-
TGCTask(const TString& storageId, TGCListsByGroup&& listsByGroupId, const TGenStep& collectGenStepInFlight, std::deque<TUnifiedBlobId>&& keepsToErase,
42+
TGCTask(const TString& storageId, TGCListsByGroup&& listsByGroupId, const std::optional<TGenStep>& collectGenStepInFlight, std::deque<TUnifiedBlobId>&& keepsToErase,
4343
const std::shared_ptr<TBlobManager>& manager, TBlobsCategories&& blobsToRemove, const std::shared_ptr<TRemoveGCCounters>& counters, const ui64 tabletId, const ui64 currentGen);
4444

4545
const TGCListsByGroup& GetListsByGroupId() const {

ydb/core/tx/columnshard/counters/blobs_manager.cpp

Lines changed: 39 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -7,58 +7,51 @@ namespace NKikimr::NColumnShard {
77

88
TBlobsManagerCounters::TBlobsManagerCounters(const TString& module)
99
: TCommonCountersOwner(module)
10-
{
11-
SkipCollection = TBase::GetDeriviative("GC/Skip/Count");
12-
StartCollection = TBase::GetDeriviative("GC/Start/Count");
13-
CollectDropExplicitBytes = TBase::GetDeriviative("GC/Drop/Explicit/Bytes");
14-
CollectDropExplicitCount = TBase::GetDeriviative("GC/Drop/Explicit/Count");
15-
CollectDropImplicitBytes = TBase::GetDeriviative("GC/Drop/Implicit/Bytes");
16-
CollectDropImplicitCount = TBase::GetDeriviative("GC/Drop/Implicit/Count");
17-
CollectKeepBytes = TBase::GetDeriviative("GC/Keep/Bytes");
18-
CollectKeepCount = TBase::GetDeriviative("GC/Keep/Count");
19-
PutBlobBytes = TBase::GetDeriviative("GC/PutBlob/Bytes");
20-
PutBlobCount = TBase::GetDeriviative("GC/PutBlob/Count");
21-
CollectGen = TBase::GetValue("GC/Gen");
22-
CollectStep = TBase::GetValue("GC/Step");
23-
24-
DeleteBlobMarkerBytes = TBase::GetDeriviative("GC/MarkerDeleteBlob/Bytes");
25-
DeleteBlobMarkerCount = TBase::GetDeriviative("GC/MarkerDeleteBlob/Count");
26-
DeleteBlobDelayedMarkerBytes = TBase::GetDeriviative("GC/MarkerDelayedDeleteBlob/Bytes");
27-
DeleteBlobDelayedMarkerCount = TBase::GetDeriviative("GC/MarkerDelayedDeleteBlob/Count");
28-
AddSmallBlobBytes = TBase::GetDeriviative("GC/AddSmallBlob/Bytes");
29-
AddSmallBlobCount = TBase::GetDeriviative("GC/AddSmallBlob/Count");
30-
DeleteSmallBlobBytes = TBase::GetDeriviative("GC/DeleteSmallBlob/Bytes");
31-
DeleteSmallBlobCount = TBase::GetDeriviative("GC/DeleteSmallBlob/Count");
32-
33-
BlobsKeepCount = TBase::GetValue("GC/BlobsKeep/Count");
34-
BlobsKeepBytes = TBase::GetValue("GC/BlobsKeep/Bytes");
35-
BlobsDeleteCount = TBase::GetValue("GC/BlobsDelete/Count");
36-
BlobsDeleteBytes = TBase::GetValue("GC/BlobsDelete/Bytes");
10+
, BlobsToDeleteCount(TBase::GetValue("BlobsToDelete/Count"))
11+
, BlobsToDeleteDelayedCount(TBase::GetValue("BlobsToDeleteDelayed/Count"))
12+
, BlobsToKeepCount(TBase::GetValue("BlobsToKeep/Count"))
13+
, CurrentGen(TBase::GetValue("CurrentGen"))
14+
, CurrentStep(TBase::GetValue("CurrentStep"))
15+
, GCCounters(*this, "GC")
3716

38-
BrokenKeepCount = TBase::GetDeriviative("GC/BrokenKeep/Count");
39-
BrokenKeepBytes = TBase::GetDeriviative("GC/BrokenKeep/Bytes");
17+
{
4018

41-
KeepMarkerCount = TBase::GetDeriviative("GC/KeepMarker/Count");
42-
KeepMarkerBytes = TBase::GetDeriviative("GC/KeepMarker/Bytes");
4319
}
4420

45-
void TBlobsManagerCounters::OnBlobsKeep(const std::map<::NKikimr::TGenStep, std::set<TLogoBlobID>>& blobs) const {
46-
AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "OnBlobsKeep")("count", blobs.size());
47-
// BlobsKeepCount->Set(blobs.size());
48-
// ui64 size = 0;
49-
// for (auto&& i : blobs) {
50-
// size += i.BlobSize();
51-
// }
52-
// BlobsKeepBytes->Set(size);
21+
TBlobsManagerGCCounters::TBlobsManagerGCCounters(const TCommonCountersOwner& sameAs, const TString& componentName)
22+
: TBase(sameAs, componentName)
23+
, SkipCollectionEmpty(TBase::GetDeriviative("Skip/Empty/Count"))
24+
, SkipCollectionThrottling(TBase::GetDeriviative("Skip/Throttling/Count"))
25+
{
26+
KeepsCountTasks = TBase::GetHistogram("Tasks/Keeps/Count", NMonitoring::ExponentialHistogram(16, 2, 100));
27+
KeepsCountBlobs = TBase::GetHistogram("Tasks/Keeps/Blobs", NMonitoring::ExponentialHistogram(16, 2, 100));
28+
KeepsCountBytes = TBase::GetHistogram("Tasks/Keeps/Bytes", NMonitoring::ExponentialHistogram(16, 2, 1024));
29+
DeletesCountBlobs = TBase::GetHistogram("Tasks/Deletes/Count", NMonitoring::ExponentialHistogram(16, 2, 100));
30+
DeletesCountTasks = TBase::GetHistogram("Tasks/Deletes/Blobs", NMonitoring::ExponentialHistogram(16, 2, 100));
31+
DeletesCountBytes = TBase::GetHistogram("Tasks/Deletes/Bytes", NMonitoring::ExponentialHistogram(16, 2, 1024));
32+
FullGCTasks = TBase::GetDeriviative("Tasks/Full/Count");
33+
MoveBarriers = TBase::GetDeriviative("Tasks/Barrier/Move");
34+
DontMoveBarriers = TBase::GetDeriviative("Tasks/Barrier/DontMove");
35+
GCTasks = TBase::GetDeriviative("Tasks/All/Count");
36+
EmptyGCTasks = TBase::GetDeriviative("Tasks/Empty/Count");
5337
}
5438

55-
void TBlobsManagerCounters::OnBlobsDelete(const NOlap::TTabletsByBlob& /*blobs*/) const {
56-
// BlobsDeleteCount->Set(blobs.size());
57-
// ui64 size = 0;
58-
// for (auto&& i : blobs) {
59-
// size += i.BlobSize();
60-
// }
61-
// BlobsDeleteBytes->Set(size);
39+
void TBlobsManagerGCCounters::OnGCTask(const ui32 keepsCount, const ui32 keepBytes, const ui32 deleteCount, const ui32 deleteBytes, const bool isFull, const bool moveBarrier) const {
40+
GCTasks->Add(1);
41+
if (isFull) {
42+
FullGCTasks->Add(1);
43+
}
44+
KeepsCountTasks->Collect(keepsCount);
45+
KeepsCountBlobs->Collect((i64)keepsCount, keepsCount);
46+
KeepsCountBytes->Collect((i64)keepsCount, keepBytes);
47+
DeletesCountTasks->Collect(deleteCount);
48+
DeletesCountBlobs->Collect((i64)deleteCount, deleteCount);
49+
DeletesCountBytes->Collect((i64)deleteCount, deleteBytes);
50+
if (moveBarrier) {
51+
MoveBarriers->Add(1);
52+
} else {
53+
DontMoveBarriers->Add(1);
54+
}
6255
}
6356

6457
}

ydb/core/tx/columnshard/counters/blobs_manager.h

Lines changed: 38 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#include "common/owner.h"
33

44
#include <ydb/core/base/logoblob.h>
5+
#include <ydb/core/tx/columnshard/blobs_action/abstract/blob_set.h>
56
#include <ydb/core/tx/columnshard/blobs_action/abstract/common.h>
67

78
#include <library/cpp/monlib/dynamic_counters/counters.h>
@@ -13,99 +14,53 @@ class TTabletsByBlob;
1314

1415
namespace NKikimr::NColumnShard {
1516

16-
class TBlobsManagerCounters: public TCommonCountersOwner {
17+
class TBlobsManagerGCCounters: public TCommonCountersOwner {
1718
private:
1819
using TBase = TCommonCountersOwner;
19-
NMonitoring::TDynamicCounters::TCounterPtr CollectDropExplicitBytes;
20-
NMonitoring::TDynamicCounters::TCounterPtr CollectDropExplicitCount;
21-
NMonitoring::TDynamicCounters::TCounterPtr CollectDropImplicitBytes;
22-
NMonitoring::TDynamicCounters::TCounterPtr CollectDropImplicitCount;
23-
NMonitoring::TDynamicCounters::TCounterPtr CollectKeepBytes;
24-
NMonitoring::TDynamicCounters::TCounterPtr CollectKeepCount;
25-
NMonitoring::TDynamicCounters::TCounterPtr PutBlobBytes;
26-
NMonitoring::TDynamicCounters::TCounterPtr PutBlobCount;
27-
NMonitoring::TDynamicCounters::TCounterPtr CollectGen;
28-
NMonitoring::TDynamicCounters::TCounterPtr CollectStep;
29-
NMonitoring::TDynamicCounters::TCounterPtr DeleteBlobMarkerBytes;
30-
NMonitoring::TDynamicCounters::TCounterPtr DeleteBlobMarkerCount;
31-
NMonitoring::TDynamicCounters::TCounterPtr DeleteBlobDelayedMarkerBytes;
32-
NMonitoring::TDynamicCounters::TCounterPtr DeleteBlobDelayedMarkerCount;
33-
NMonitoring::TDynamicCounters::TCounterPtr AddSmallBlobBytes;
34-
NMonitoring::TDynamicCounters::TCounterPtr AddSmallBlobCount;
35-
NMonitoring::TDynamicCounters::TCounterPtr DeleteSmallBlobBytes;
36-
NMonitoring::TDynamicCounters::TCounterPtr DeleteSmallBlobCount;
37-
NMonitoring::TDynamicCounters::TCounterPtr BrokenKeepCount;
38-
NMonitoring::TDynamicCounters::TCounterPtr BrokenKeepBytes;
39-
NMonitoring::TDynamicCounters::TCounterPtr BlobsKeepCount;
40-
NMonitoring::TDynamicCounters::TCounterPtr BlobsKeepBytes;
41-
NMonitoring::TDynamicCounters::TCounterPtr BlobsDeleteCount;
42-
NMonitoring::TDynamicCounters::TCounterPtr BlobsDeleteBytes;
43-
NMonitoring::TDynamicCounters::TCounterPtr KeepMarkerCount;
44-
NMonitoring::TDynamicCounters::TCounterPtr KeepMarkerBytes;
45-
20+
NMonitoring::THistogramPtr KeepsCountBytes;
21+
NMonitoring::THistogramPtr KeepsCountBlobs;
22+
NMonitoring::THistogramPtr KeepsCountTasks;
23+
NMonitoring::THistogramPtr DeletesCountBytes;
24+
NMonitoring::THistogramPtr DeletesCountBlobs;
25+
NMonitoring::THistogramPtr DeletesCountTasks;
26+
NMonitoring::TDynamicCounters::TCounterPtr FullGCTasks;
27+
NMonitoring::TDynamicCounters::TCounterPtr MoveBarriers;
28+
NMonitoring::TDynamicCounters::TCounterPtr DontMoveBarriers;
29+
NMonitoring::TDynamicCounters::TCounterPtr GCTasks;
30+
NMonitoring::TDynamicCounters::TCounterPtr EmptyGCTasks;
4631
public:
47-
NMonitoring::TDynamicCounters::TCounterPtr SkipCollection;
48-
NMonitoring::TDynamicCounters::TCounterPtr StartCollection;
49-
50-
TBlobsManagerCounters(const TString& module);
51-
52-
void OnKeepMarker(const ui64 size) const {
53-
KeepMarkerCount->Add(1);
54-
KeepMarkerBytes->Add(size);
55-
}
56-
57-
void OnBlobsKeep(const std::map<::NKikimr::TGenStep, std::set<TLogoBlobID>>& blobs) const;
58-
59-
void OnBlobsDelete(const NOlap::TTabletsByBlob& blobs) const;
60-
61-
void OnAddSmallBlob(const ui32 bSize) const {
62-
AddSmallBlobBytes->Add(bSize);
63-
AddSmallBlobCount->Add(1);
64-
}
65-
66-
void OnDeleteBlobDelayedMarker(const ui32 bSize) const {
67-
DeleteBlobDelayedMarkerBytes->Add(bSize);
68-
DeleteBlobDelayedMarkerCount->Add(1);
69-
}
70-
71-
void OnDeleteBlobMarker(const ui32 bSize) const {
72-
DeleteBlobMarkerBytes->Add(bSize);
73-
DeleteBlobMarkerCount->Add(1);
74-
}
32+
const NMonitoring::TDynamicCounters::TCounterPtr SkipCollectionEmpty;
33+
const NMonitoring::TDynamicCounters::TCounterPtr SkipCollectionThrottling;
7534

76-
void OnNewCollectStep(const ui32 gen, const ui32 step) const {
77-
CollectGen->Set(gen);
78-
CollectStep->Set(step);
79-
}
35+
TBlobsManagerGCCounters(const TCommonCountersOwner& sameAs, const TString& componentName);
8036

81-
void OnDeleteSmallBlob(const ui32 bSize) const {
82-
DeleteSmallBlobBytes->Add(bSize);
83-
DeleteSmallBlobCount->Add(1);
84-
}
37+
void OnGCTask(const ui32 keepsCount, const ui32 keepBytes, const ui32 deleteCount, const ui32 deleteBytes,
38+
const bool isFull, const bool moveBarrier) const;
8539

86-
void OnPutResult(const ui32 bSize) const {
87-
PutBlobBytes->Add(bSize);
88-
PutBlobCount->Add(1);
89-
}
90-
91-
void OnCollectKeep(const ui32 bSize) const {
92-
CollectKeepBytes->Add(bSize);
93-
CollectKeepCount->Add(1);
40+
void OnEmptyGCTask() const {
41+
EmptyGCTasks->Add(1);
9442
}
43+
};
9544

96-
void OnBrokenKeep(const ui32 bSize) const {
97-
BrokenKeepBytes->Add(bSize);
98-
BrokenKeepCount->Add(1);
45+
class TBlobsManagerCounters: public TCommonCountersOwner {
46+
private:
47+
using TBase = TCommonCountersOwner;
48+
const NMonitoring::TDynamicCounters::TCounterPtr BlobsToDeleteCount;
49+
const NMonitoring::TDynamicCounters::TCounterPtr BlobsToDeleteDelayedCount;
50+
const NMonitoring::TDynamicCounters::TCounterPtr BlobsToKeepCount;
51+
public:
52+
const NMonitoring::TDynamicCounters::TCounterPtr CurrentGen;
53+
const NMonitoring::TDynamicCounters::TCounterPtr CurrentStep;
54+
const TBlobsManagerGCCounters GCCounters;
55+
TBlobsManagerCounters(const TString& module);
56+
void OnBlobsToDelete(const NOlap::TTabletsByBlob& blobs) const {
57+
BlobsToDeleteCount->Set(blobs.GetSize());
9958
}
100-
101-
void OnCollectDropExplicit(const ui32 bSize) const {
102-
CollectDropExplicitBytes->Add(bSize);
103-
CollectDropExplicitCount->Add(1);
59+
void OnBlobsToKeep(const NOlap::TBlobsByGenStep& blobs) const {
60+
BlobsToKeepCount->Set(blobs.GetSize());
10461
}
105-
106-
void OnCollectDropImplicit(const ui32 bSize) const {
107-
CollectDropImplicitBytes->Add(bSize);
108-
CollectDropImplicitCount->Add(1);
62+
void OnBlobsToDeleteDelayed(const NOlap::TTabletsByBlob& blobs) const {
63+
BlobsToDeleteDelayedCount->Set(blobs.GetSize());
10964
}
11065
};
11166

0 commit comments

Comments
 (0)