Skip to content

Commit fa6f346

Browse files
authored
Merge 34c0cf8 into 7ea1c14
2 parents 7ea1c14 + 34c0cf8 commit fa6f346

File tree

14 files changed

+188
-50
lines changed

14 files changed

+188
-50
lines changed

ydb/core/protos/counters_columnshard.proto

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,8 @@ enum ECumulativeCounters {
135135
COUNTER_READING_EXPORTED_BLOBS = 79 [(CounterOpts) = {Name: "ReadingExportedBlobs"}];
136136
COUNTER_READING_EXPORTED_BYTES = 80 [(CounterOpts) = {Name: "ReadingExportedBytes"}];
137137
COUNTER_READING_EXPORTED_RANGES = 81 [(CounterOpts) = {Name: "ReadingExportedRanges"}];
138+
COUNTER_PLANNED_TX_COMPLETED = 82 [(CounterOpts) = {Name: "PlannedTxCompleted"}];
139+
COUNTER_IMMEDIATE_TX_COMPLETED = 83 [(CounterOpts) = {Name: "ImmediateTxCompleted"}];
138140
}
139141

140142
enum EPercentileCounters {

ydb/core/tx/columnshard/background_controller.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,14 @@ void TBackgroundController::CheckDeadlinesIndexation() {
2626
}
2727
}
2828

29+
TInstant TBackgroundController::GetLastCompactionFinishInstant(ui64 pathId) const {
30+
auto findInstant = LastCompactionFinishByPathId.find(pathId);
31+
if (findInstant.IsEnd()) {
32+
return TInstant::Zero();
33+
}
34+
return findInstant->second;
35+
}
36+
2937
void TBackgroundController::StartIndexing(const NOlap::TColumnEngineChanges& changes) {
3038
LastIndexationInstant = TMonotonic::Now();
3139
Y_ABORT_UNLESS(ActiveIndexationTasks.emplace(changes.GetTaskIdentifier(), TMonotonic::Now()).second);

ydb/core/tx/columnshard/background_controller.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#pragma once
22
#include "engines/changes/abstract/compaction_info.h"
33
#include "engines/portions/meta.h"
4+
#include <ydb/core/base/appdata.h>
45

56
namespace NKikimr::NOlap {
67
class TColumnEngineChanges;
@@ -14,6 +15,7 @@ class TBackgroundController {
1415

1516
using TCurrentCompaction = THashMap<ui64, NOlap::TPlanCompactionInfo>;
1617
TCurrentCompaction ActiveCompactionInfo;
18+
THashMap<ui64, TInstant> LastCompactionFinishByPathId;
1719

1820
bool ActiveCleanupPortions = false;
1921
bool ActiveCleanupTables = false;
@@ -29,13 +31,16 @@ class TBackgroundController {
2931
bool StartCompaction(const NOlap::TPlanCompactionInfo& info);
3032
void FinishCompaction(const NOlap::TPlanCompactionInfo& info) {
3133
Y_ABORT_UNLESS(ActiveCompactionInfo.erase(info.GetPathId()));
34+
TInstant& lastFinishInstant = LastCompactionFinishByPathId[info.GetPathId()];
35+
lastFinishInstant = std::max(lastFinishInstant, TAppData::TimeProvider->Now());
3236
}
3337
const TCurrentCompaction& GetActiveCompaction() const {
3438
return ActiveCompactionInfo;
3539
}
3640
ui32 GetCompactionsCount() const {
3741
return ActiveCompactionInfo.size();
3842
}
43+
TInstant GetLastCompactionFinishInstant(ui64 pathId) const;
3944

4045
void StartIndexing(const NOlap::TColumnEngineChanges& changes);
4146
void FinishIndexing(const NOlap::TColumnEngineChanges& changes);

ydb/core/tx/columnshard/blobs_action/transaction/tx_write.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ void TTxWrite::Complete(const TActorContext& ctx) {
143143
Self->CSCounters.OnWriteTxComplete(now - writeMeta.GetWriteStartInstant());
144144
Self->CSCounters.OnSuccessWriteResponse();
145145
}
146-
146+
Self->IncCounter(COUNTER_IMMEDIATE_TX_COMPLETED);
147147
}
148148

149149
}

ydb/core/tx/columnshard/columnshard.cpp

Lines changed: 110 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -159,11 +159,18 @@ void TColumnShard::Handle(TEvPrivate::TEvReadFinished::TPtr& ev, const TActorCon
159159
InFlightReadsTracker.RemoveInFlightRequest(ev->Get()->RequestCookie, index);
160160

161161
ui64 txId = ev->Get()->TxId;
162+
bool success = ev->Get()->Success;
162163
if (ScanTxInFlight.contains(txId)) {
163164
TDuration duration = TAppData::TimeProvider->Now() - ScanTxInFlight[txId];
164165
IncCounter(COUNTER_SCAN_LATENCY, duration);
165166
ScanTxInFlight.erase(txId);
166167
SetCounter(COUNTER_SCAN_IN_FLY, ScanTxInFlight.size());
168+
IncCounter(COUNTER_IMMEDIATE_TX_COMPLETED);
169+
if (success) {
170+
IncCounter(COUNTER_READ_SUCCESS);
171+
} else {
172+
IncCounter(COUNTER_READ_FAIL);
173+
}
167174
}
168175
}
169176

@@ -308,36 +315,103 @@ void TColumnShard::UpdateResourceMetrics(const TActorContext& ctx, const TUsage&
308315
metrics->TryUpdate(ctx);
309316
}
310317

311-
void TColumnShard::ConfigureStats(const NOlap::TColumnEngineStats& indexStats,
312-
::NKikimrTableStats::TTableStats* tabletStats) {
313-
NOlap::TSnapshot lastIndexUpdate = TablesManager.GetPrimaryIndexSafe().LastUpdate();
314-
auto activeIndexStats = indexStats.Active(); // data stats excluding inactive and evicted
318+
std::optional<TColumnShard::TTableStatsCollection> TColumnShard::CollectTableStats() const {
319+
if (!TablesManager.HasPrimaryIndex()) {
320+
return std::nullopt;
321+
}
315322

316-
if (activeIndexStats.Rows < 0 || activeIndexStats.Bytes < 0) {
317-
LOG_S_WARN("Negative stats counter. Rows: " << activeIndexStats.Rows << " Bytes: " << activeIndexStats.Bytes
318-
<< TabletID());
323+
const TMap<ui64, std::shared_ptr<NOlap::TColumnEngineStats>>& columnEngineStats =
324+
TablesManager.GetPrimaryIndexSafe().GetStats();
325+
TTableStatsCollection resultStats;
326+
327+
for (const auto& [pathId, tableInfo] : TablesManager.GetTables()) {
328+
TColumnTableStats& tableStats = resultStats.StatsByPathId[pathId];
329+
tableStats.AccessTime = tableInfo.GetLastAccessTime();
330+
tableStats.UpdateTime = tableInfo.GetLastUpdateTime();
331+
tableStats.LastFullCompaction = BackgroundController.GetLastCompactionFinishInstant(pathId);
332+
333+
auto findEngineStats = columnEngineStats.FindPtr(pathId);
334+
if (findEngineStats && *findEngineStats) {
335+
NOlap::TColumnEngineStats::TPortionsStats portionsStats =
336+
(*findEngineStats)->Active(); // data stats excluding inactive and evicted
337+
338+
if (portionsStats.Rows < 0 || portionsStats.Bytes < 0) {
339+
LOG_S_WARN(
340+
"Negative stats counter. Rows: " << portionsStats.Rows << " Bytes: " << portionsStats.Bytes
341+
<< " Portions: " << portionsStats.Portions
342+
<< " Tablet: " << TabletID()
343+
);
344+
345+
portionsStats.Rows = (portionsStats.Rows < 0) ? 0 : portionsStats.Rows;
346+
portionsStats.Bytes = (portionsStats.Bytes < 0) ? 0 : portionsStats.Bytes;
347+
portionsStats.Portions = (portionsStats.Portions < 0) ? 0 : portionsStats.Portions;
348+
}
349+
350+
// TODO: count rows and bytes of data stored in InsertTable
351+
// TODO: we need row/dataSize counters for evicted data (managed by tablet but stored outside)
352+
tableStats.RowCount = portionsStats.Rows;
353+
tableStats.DataSize = portionsStats.Bytes;
354+
tableStats.Portions = portionsStats.Portions;
355+
} else {
356+
LOG_S_ERROR("CollectTableStats: missing column engine stats for pathId " << pathId);
357+
}
319358

320-
activeIndexStats.Rows = (activeIndexStats.Rows < 0) ? 0 : activeIndexStats.Rows;
321-
activeIndexStats.Bytes = (activeIndexStats.Bytes < 0) ? 0 : activeIndexStats.Bytes;
359+
if (resultStats.TotalStats.AccessTime < tableStats.AccessTime) {
360+
resultStats.TotalStats.AccessTime = tableStats.AccessTime;
361+
}
362+
if (resultStats.TotalStats.UpdateTime < tableStats.UpdateTime) {
363+
resultStats.TotalStats.UpdateTime = tableStats.UpdateTime;
364+
}
365+
if (resultStats.TotalStats.LastFullCompaction < tableStats.LastFullCompaction) {
366+
resultStats.TotalStats.LastFullCompaction = tableStats.LastFullCompaction;
367+
}
368+
resultStats.TotalStats.RowCount += tableStats.RowCount;
369+
resultStats.TotalStats.DataSize += tableStats.DataSize;
322370
}
323371

324-
tabletStats->SetRowCount(activeIndexStats.Rows);
325-
tabletStats->SetDataSize(activeIndexStats.Bytes + TabletCounters->Simple()[COUNTER_COMMITTED_BYTES].Get());
372+
return resultStats;
373+
}
374+
375+
void TColumnShard::ConfigureStats(const TColumnTableStats& inputStats, ::NKikimrTableStats::TTableStats* outputStats) {
376+
Y_ABORT_UNLESS(outputStats);
377+
378+
outputStats->SetRowCount(inputStats.RowCount);
379+
outputStats->SetDataSize(inputStats.DataSize);
380+
381+
// tabletStats->SetIndexSize(...); // Not implemented
382+
// tabletStats->SetInMemSize(...); // Not implemented
326383

327-
// TODO: we need row/dataSize counters for evicted data (managed by tablet but stored outside)
328-
// tabletStats->SetIndexSize(); // TODO: calc size of internal tables
384+
outputStats->SetLastAccessTime(inputStats.AccessTime.MilliSeconds());
385+
outputStats->SetLastUpdateTime(inputStats.UpdateTime.MilliSeconds());
329386

330-
tabletStats->SetLastAccessTime(LastAccessTime.MilliSeconds());
331-
tabletStats->SetLastUpdateTime(lastIndexUpdate.GetPlanStep());
387+
outputStats->SetRowUpdates(TabletCounters->Cumulative()[COUNTER_WRITE_SUCCESS].Get());
388+
outputStats->SetRowDeletes(0); // manual deletes are not supported
389+
outputStats->SetRowReads(0); // all reads are range reads
390+
outputStats->SetRangeReads(TabletCounters->Cumulative()[COUNTER_READ_SUCCESS].Get());
391+
outputStats->SetRangeReadRows(TabletCounters->Cumulative()[COUNTER_READ_INDEX_ROWS].Get());
392+
393+
outputStats->SetPartCount(inputStats.Portions);
394+
// outputStats->SetSearchHeight(...); // Not implemented
395+
396+
outputStats->SetLastFullCompactionTs(inputStats.LastFullCompaction.Seconds());
397+
outputStats->SetHasLoanedParts(Executor()->HasLoanedParts());
332398
}
333399

334400
void TColumnShard::FillTxTableStats(::NKikimrTableStats::TTableStats* tableStats) const {
401+
Y_ABORT_UNLESS(tableStats);
402+
tableStats->SetImmediateTxCompleted(TabletCounters->Cumulative()[COUNTER_IMMEDIATE_TX_COMPLETED].Get());
335403
tableStats->SetTxRejectedByOverload(TabletCounters->Cumulative()[COUNTER_WRITE_OVERLOAD].Get());
336404
tableStats->SetTxRejectedBySpace(TabletCounters->Cumulative()[COUNTER_OUT_OF_SPACE].Get());
405+
tableStats->SetPlannedTxCompleted(TabletCounters->Cumulative()[COUNTER_PLANNED_TX_COMPLETED].Get());
406+
tableStats->SetTxCompleteLagMsec(GetTxCompleteLag().MilliSeconds());
337407
tableStats->SetInFlightTxCount(Executor()->GetStats().TxInFly);
338408
}
339409

340-
void TColumnShard::FillOlapStats(const TActorContext& ctx, std::unique_ptr<TEvDataShard::TEvPeriodicTableStats>& ev) {
410+
void TColumnShard::FillOlapStats(
411+
const TActorContext& ctx,
412+
const std::optional<TTableStatsCollection>& tableStats,
413+
std::unique_ptr<TEvDataShard::TEvPeriodicTableStats>& ev
414+
) {
341415
ev->Record.SetShardState(2); // NKikimrTxDataShard.EDatashardState.Ready
342416
ev->Record.SetGeneration(Executor()->Generation());
343417
ev->Record.SetRound(StatsReportRound++);
@@ -346,30 +420,27 @@ void TColumnShard::FillOlapStats(const TActorContext& ctx, std::unique_ptr<TEvDa
346420
if (auto* resourceMetrics = Executor()->GetResourceMetrics()) {
347421
resourceMetrics->Fill(*ev->Record.MutableTabletMetrics());
348422
}
349-
auto* tabletStats = ev->Record.MutableTableStats();
350-
FillTxTableStats(tabletStats);
351-
if (TablesManager.HasPrimaryIndex()) {
352-
const auto& indexStats = TablesManager.MutablePrimaryIndex().GetTotalStats();
353-
ConfigureStats(indexStats, tabletStats);
423+
auto* outputTableStats = ev->Record.MutableTableStats();
424+
FillTxTableStats(outputTableStats);
425+
if (tableStats) {
426+
ConfigureStats(tableStats->TotalStats, outputTableStats);
354427
}
355428
}
356429

357-
void TColumnShard::FillColumnTableStats(const TActorContext& ctx,
358-
std::unique_ptr<TEvDataShard::TEvPeriodicTableStats>& ev) {
359-
if (!TablesManager.HasPrimaryIndex()) {
430+
void TColumnShard::FillColumnTableStats(
431+
const TActorContext& ctx,
432+
const std::optional<TTableStatsCollection>& tableStats,
433+
std::unique_ptr<TEvDataShard::TEvPeriodicTableStats>& ev
434+
) {
435+
if (!tableStats) {
360436
return;
361437
}
362-
const auto& tablesIndexStats = TablesManager.MutablePrimaryIndex().GetStats();
363-
LOG_S_DEBUG("There are stats for " << tablesIndexStats.size() << " tables");
364-
for (const auto& [tableLocalID, columnStats] : tablesIndexStats) {
365-
if (!columnStats) {
366-
LOG_S_ERROR("SendPeriodicStats: empty stats");
367-
continue;
368-
}
369438

439+
LOG_S_DEBUG("There are stats for " << tableStats->StatsByPathId.size() << " tables");
440+
for (const auto& [pathId, columnStats] : tableStats->StatsByPathId) {
370441
auto* periodicTableStats = ev->Record.AddTables();
371442
periodicTableStats->SetDatashardId(TabletID());
372-
periodicTableStats->SetTableLocalId(tableLocalID);
443+
periodicTableStats->SetTableLocalId(pathId);
373444

374445
periodicTableStats->SetShardState(2); // NKikimrTxDataShard.EDatashardState.Ready
375446
periodicTableStats->SetGeneration(Executor()->Generation());
@@ -381,11 +452,11 @@ void TColumnShard::FillColumnTableStats(const TActorContext& ctx,
381452
resourceMetrics->Fill(*periodicTableStats->MutableTabletMetrics());
382453
}
383454

384-
auto* tableStats = periodicTableStats->MutableTableStats();
385-
FillTxTableStats(tableStats);
386-
ConfigureStats(*columnStats, tableStats);
455+
auto* outputTableStats = periodicTableStats->MutableTableStats();
456+
FillTxTableStats(outputTableStats);
457+
ConfigureStats(columnStats, outputTableStats);
387458

388-
LOG_S_TRACE("Add stats for table, tableLocalID=" << tableLocalID);
459+
LOG_S_TRACE("Add stats for table, tableLocalID=" << pathId);
389460
}
390461
}
391462

@@ -412,10 +483,11 @@ void TColumnShard::SendPeriodicStats() {
412483
StatsReportPipe = ctx.Register(NTabletPipe::CreateClient(ctx.SelfID, CurrentSchemeShardId, clientConfig));
413484
}
414485

486+
std::optional<TTableStatsCollection> aggregatedStats = CollectTableStats();
415487
auto ev = std::make_unique<TEvDataShard::TEvPeriodicTableStats>(TabletID(), OwnerPathId);
416488

417-
FillOlapStats(ctx, ev);
418-
FillColumnTableStats(ctx, ev);
489+
FillOlapStats(ctx, aggregatedStats, ev);
490+
FillColumnTableStats(ctx, aggregatedStats, ev);
419491

420492
NTabletPipe::SendData(ctx, StatsReportPipe, ev.release());
421493
}

ydb/core/tx/columnshard/columnshard__progress_tx.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ class TColumnShard::TTxProgressTx : public TTransactionBase<TColumnShard> {
4343
TxOperator = Self->ProgressTxController->GetVerifiedTxOperator(txId);
4444
AFL_VERIFY(TxOperator->ProgressOnExecute(*Self, NOlap::TSnapshot(step, txId), txc));
4545
Self->ProgressTxController->FinishPlannedTx(txId, txc);
46+
Self->IncCounter(COUNTER_PLANNED_TX_COMPLETED);
4647
}
4748
return true;
4849
}

ydb/core/tx/columnshard/columnshard__scan.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ void TColumnShard::Handle(TEvColumnShard::TEvScan::TPtr& ev, const TActorContext
2929
return;
3030
}
3131

32-
LastAccessTime = TAppData::TimeProvider->Now();
32+
TablesManager.RegisterAccess(record.GetLocalPathId());
3333
ScanTxInFlight.insert({txId, LastAccessTime});
3434
SetCounter(COUNTER_SCAN_IN_FLY, ScanTxInFlight.size());
3535
Execute(new NOlap::NReader::TTxScan(this, ev), ctx);

ydb/core/tx/columnshard/columnshard__write.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,6 @@ void TColumnShard::Handle(TEvPrivate::TEvWriteDraft::TPtr& ev, const TActorConte
153153

154154
void TColumnShard::Handle(TEvColumnShard::TEvWrite::TPtr& ev, const TActorContext& ctx) {
155155
CSCounters.OnStartWriteRequest();
156-
LastAccessTime = TAppData::TimeProvider->Now();
157156

158157
const auto& record = Proto(ev->Get());
159158
const ui64 tableId = record.GetTableId();
@@ -162,6 +161,9 @@ void TColumnShard::Handle(TEvColumnShard::TEvWrite::TPtr& ev, const TActorContex
162161
const TString dedupId = record.GetDedupId();
163162
const auto source = ev->Sender;
164163

164+
TablesManager.RegisterAccess(tableId);
165+
TablesManager.RegisterUpdate(tableId);
166+
165167
std::optional<ui32> granuleShardingVersion;
166168
if (record.HasGranuleShardingVersion()) {
167169
granuleShardingVersion = record.GetGranuleShardingVersion();

ydb/core/tx/columnshard/columnshard_impl.h

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,20 @@ class TColumnShard
426426
std::optional<ui32> GranuleShardingVersionId;
427427
};
428428

429+
struct TColumnTableStats {
430+
ui64 RowCount = 0;
431+
ui64 DataSize = 0;
432+
ui64 Portions = 0;
433+
TInstant AccessTime;
434+
TInstant UpdateTime;
435+
TInstant LastFullCompaction;
436+
};
437+
438+
struct TTableStatsCollection {
439+
TColumnTableStats TotalStats;
440+
THashMap<ui64, TColumnTableStats> StatsByPathId;
441+
};
442+
429443
class TWritesMonitor {
430444
private:
431445
TColumnShard& Owner;
@@ -586,10 +600,11 @@ class TColumnShard
586600
void UpdateResourceMetrics(const TActorContext& ctx, const TUsage& usage);
587601
ui64 MemoryUsage() const;
588602

603+
std::optional<TTableStatsCollection> CollectTableStats() const;
589604
void SendPeriodicStats();
590-
void FillOlapStats(const TActorContext& ctx, std::unique_ptr<TEvDataShard::TEvPeriodicTableStats>& ev);
591-
void FillColumnTableStats(const TActorContext& ctx, std::unique_ptr<TEvDataShard::TEvPeriodicTableStats>& ev);
592-
void ConfigureStats(const NOlap::TColumnEngineStats& indexStats, ::NKikimrTableStats::TTableStats* tabletStats);
605+
void FillOlapStats(const TActorContext& ctx, const std::optional<TTableStatsCollection>& tableStats, std::unique_ptr<TEvDataShard::TEvPeriodicTableStats>& ev);
606+
void FillColumnTableStats(const TActorContext& ctx, const std::optional<TTableStatsCollection>& tableStats, std::unique_ptr<TEvDataShard::TEvPeriodicTableStats>& ev);
607+
void ConfigureStats(const TColumnTableStats& inputStats, ::NKikimrTableStats::TTableStats* outputStats);
593608
void FillTxTableStats(::NKikimrTableStats::TTableStats* tableStats) const;
594609

595610
public:

ydb/core/tx/columnshard/columnshard_private_events.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,12 +141,13 @@ struct TEvPrivate {
141141
};
142142

143143
struct TEvReadFinished : public TEventLocal<TEvReadFinished, EvReadFinished> {
144-
explicit TEvReadFinished(ui64 requestCookie, ui64 txId = 0)
145-
: RequestCookie(requestCookie), TxId(txId)
144+
explicit TEvReadFinished(ui64 requestCookie, ui64 txId, bool success)
145+
: RequestCookie(requestCookie), TxId(txId), Success(success)
146146
{}
147147

148148
ui64 RequestCookie;
149149
ui64 TxId;
150+
bool Success;
150151
};
151152

152153
struct TEvPeriodicWakeup : public TEventLocal<TEvPeriodicWakeup, EvPeriodicWakeup> {

ydb/core/tx/columnshard/engines/reader/actor/actor.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,8 @@ void TColumnShardScan::Finish(const NColumnShard::TScanCounters::EStatusFinish s
400400
LOG_DEBUG_S(*TlsActivationContext, NKikimrServices::TX_COLUMNSHARD_SCAN,
401401
"Scan " << ScanActorId << " finished for tablet " << TabletId);
402402

403-
Send(ColumnShardActorId, new NColumnShard::TEvPrivate::TEvReadFinished(RequestCookie, TxId));
403+
bool success = (status == NColumnShard::TScanCounters::EStatusFinish::Success);
404+
Send(ColumnShardActorId, new NColumnShard::TEvPrivate::TEvReadFinished(RequestCookie, TxId, success));
404405
AFL_VERIFY(StartInstant);
405406
ScanCountersPool.OnScanDuration(status, TMonotonic::Now() - *StartInstant);
406407
ReportStats();

ydb/core/tx/columnshard/hooks/testing/ro_controller.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,10 @@ class TReadOnlyController: public ICSController {
8282

8383
void WaitIndexation(const TDuration d) const {
8484
TInstant start = TInstant::Now();
85-
ui32 compactionsStart = GetInsertStartedCounter().Val();
85+
ui32 insertsStart = GetInsertStartedCounter().Val();
8686
while (Now() - start < d) {
87-
if (compactionsStart != GetInsertStartedCounter().Val()) {
88-
compactionsStart = GetInsertStartedCounter().Val();
87+
if (insertsStart != GetInsertStartedCounter().Val()) {
88+
insertsStart = GetInsertStartedCounter().Val();
8989
start = TInstant::Now();
9090
}
9191
Cerr << "WAIT_INDEXATION: " << GetInsertStartedCounter().Val() << Endl;

0 commit comments

Comments
 (0)