11#pragma once
22#include " counters.h"
33
4+ #include < ydb/core/formats/arrow/reader/position.h>
45#include < ydb/core/tx/columnshard/blobs_action/abstract/storages_manager.h>
56#include < ydb/core/tx/columnshard/common/limits.h>
67#include < ydb/core/tx/columnshard/data_locks/manager/manager.h>
7- #include < ydb/core/tx/columnshard/engines/changes/general_compaction.h>
88#include < ydb/core/tx/columnshard/engines/changes/abstract/abstract.h>
9+ #include < ydb/core/tx/columnshard/engines/changes/general_compaction.h>
910#include < ydb/core/tx/columnshard/engines/portions/portion_info.h>
1011#include < ydb/core/tx/columnshard/engines/storage/optimizer/abstract/optimizer.h>
1112#include < ydb/core/tx/columnshard/hooks/abstract/abstract.h>
13+
1214#include < ydb/library/accessor/accessor.h>
1315
1416#include < util/generic/hash.h>
15- #include < util/system/types.h>
1617#include < util/generic/hash_set.h>
17- #include < ydb/core/formats/arrow/reader/position .h>
18+ #include < util/system/types .h>
1819
1920namespace NKikimr ::NOlap::NStorageOptimizer::NBuckets {
2021
@@ -30,6 +31,7 @@ class TSimplePortionsGroupInfo {
3031 YDB_READONLY (i64 , Bytes, 0 );
3132 YDB_READONLY (i64 , Count, 0 );
3233 YDB_READONLY (i64 , RecordsCount, 0 );
34+
3335public:
3436 NJson::TJsonValue SerializeToJson () const {
3537 NJson::TJsonValue result = NJson::JSON_MAP;
@@ -62,11 +64,10 @@ class TPortionsGroupInfo: public TSimplePortionsGroupInfo {
6264private:
6365 using TBase = TSimplePortionsGroupInfo;
6466 std::shared_ptr<TPortionCategoryCounters> Signals;
67+
6568public:
6669 TPortionsGroupInfo (const std::shared_ptr<TPortionCategoryCounters>& signals)
67- : Signals(signals)
68- {
69-
70+ : Signals(signals) {
7071 }
7172
7273 void AddPortion (const std::shared_ptr<TPortionInfo>& p) {
@@ -286,13 +287,13 @@ class TPortionsPool {
286287
287288 TPortionsPool (const std::shared_ptr<TCounters>& counters, const TDuration futureDetector)
288289 : Counters(counters)
289- , FutureDetector(futureDetector)
290- {
290+ , FutureDetector(futureDetector) {
291291 }
292292
293293 ~TPortionsPool () {
294294 for (auto && i : Actuals) {
295295 Counters->PortionsForMerge ->RemovePortion (i.second );
296+ Counters->ActualPortions ->RemovePortion (i.second );
296297 }
297298 for (auto && f : Futures) {
298299 for (auto && i : f.second ) {
@@ -433,7 +434,7 @@ class TPortionsPool {
433434 }
434435 }
435436
436- bool Remove (const std::shared_ptr<TPortionInfo>& portion) Y_WARN_UNUSED_RESULT {
437+ [[nodiscard]] bool Remove (const std::shared_ptr<TPortionInfo>& portion) {
437438 portion->AddRuntimeFeature (TPortionInfo::ERuntimeFeature::Optimized);
438439 if (RemovePreActual (portion)) {
439440 return true ;
@@ -660,18 +661,18 @@ class TPortionsBucket: public TMoveOnly {
660661 TPortionsBucket& Owner;
661662 const bool IsEmptyOthers = false ;
662663 const bool HasNextBorder = false ;
664+
663665 public:
664666 TModificationGuard (TPortionsBucket& owner)
665667 : Owner(owner)
666668 , IsEmptyOthers(Owner.Others.ActualsEmpty())
667- , HasNextBorder(Owner.NextBorder)
668- {
669+ , HasNextBorder(Owner.NextBorder) {
669670 AFL_VERIFY_DEBUG (Owner.Validate ());
670671 }
671672
672673 ~TModificationGuard () {
673674 AFL_VERIFY_DEBUG (Owner.Validate ());
674- Owner.NextActualizeInstant = TInstant::Zero ();
675+ Owner.NextActualizeInstant = TInstant::Now ();
675676 if (!Owner.MainPortion ) {
676677 return ;
677678 }
@@ -710,8 +711,7 @@ class TPortionsBucket: public TMoveOnly {
710711 TPortionsBucket (const std::shared_ptr<TPortionInfo>& portion, const std::shared_ptr<TCounters>& counters)
711712 : MainPortion(portion)
712713 , Counters(counters)
713- , Others(Counters, GetCommonFreshnessCheckDuration())
714- {
714+ , Others(Counters, GetCommonFreshnessCheckDuration()) {
715715 if (MainPortion) {
716716 Counters->PortionsAlone ->AddPortion (MainPortion);
717717 }
@@ -995,13 +995,14 @@ class TPortionBuckets {
995995 }
996996 AddBucketToRating (insertInfo.first ->second );
997997 }
998+
998999public:
999- TPortionBuckets (const std::shared_ptr<arrow::Schema>& primaryKeysSchema, const std::shared_ptr<IStoragesManager>& storagesManager, const std::shared_ptr<TCounters>& counters)
1000+ TPortionBuckets (const std::shared_ptr<arrow::Schema>& primaryKeysSchema, const std::shared_ptr<IStoragesManager>& storagesManager,
1001+ const std::shared_ptr<TCounters>& counters)
10001002 : PrimaryKeysSchema(primaryKeysSchema)
10011003 , StoragesManager(storagesManager)
10021004 , LeftBucket(std::make_shared<TPortionsBucket>(nullptr , counters))
1003- , Counters(counters)
1004- {
1005+ , Counters(counters) {
10051006 AddBucketToRating (LeftBucket);
10061007 }
10071008
@@ -1128,6 +1129,7 @@ class TOptimizerPlanner: public IOptimizerPlanner {
11281129 std::shared_ptr<TCounters> Counters;
11291130 TPortionBuckets Buckets;
11301131 const std::shared_ptr<IStoragesManager> StoragesManager;
1132+
11311133protected:
11321134 virtual bool DoIsLocked (const std::shared_ptr<NDataLocks::TManager>& dataLocksManager) const override {
11331135 return Buckets.IsLocked (dataLocksManager);
@@ -1156,7 +1158,6 @@ class TOptimizerPlanner: public IOptimizerPlanner {
11561158 }
11571159 virtual std::shared_ptr<TColumnEngineChanges> DoGetOptimizationTask (std::shared_ptr<TGranuleMeta> granule, const std::shared_ptr<NDataLocks::TManager>& locksManager) const override {
11581160 return Buckets.BuildOptimizationTask (granule, locksManager);
1159-
11601161 }
11611162 virtual void DoActualize (const TInstant currentInstant) override {
11621163 Buckets.Actualize (currentInstant);
@@ -1175,6 +1176,7 @@ class TOptimizerPlanner: public IOptimizerPlanner {
11751176 virtual NJson::TJsonValue DoSerializeToJsonVisual () const override {
11761177 return Buckets.SerializeToJson ();
11771178 }
1179+
11781180public:
11791181 virtual std::vector<NArrow::NMerger::TSortableBatchPosition> GetBucketPositions () const override {
11801182 return Buckets.GetBucketPositions ();
@@ -1184,9 +1186,8 @@ class TOptimizerPlanner: public IOptimizerPlanner {
11841186 : TBase(pathId)
11851187 , Counters(std::make_shared<TCounters>())
11861188 , Buckets(primaryKeysSchema, storagesManager, Counters)
1187- , StoragesManager(storagesManager)
1188- {
1189+ , StoragesManager(storagesManager) {
11891190 }
11901191};
11911192
1192- }
1193+ } // namespace NKikimr::NOlap::NStorageOptimizer::NBuckets
0 commit comments