From 159797ab236d8a7bfb4c8fc5b2a3bcf258dd89f0 Mon Sep 17 00:00:00 2001 From: ivanmorozov333 Date: Tue, 16 Jan 2024 11:21:54 +0300 Subject: [PATCH 1/2] fix case removed column for stats usage --- .../tx/columnshard/engines/changes/general_compaction.cpp | 2 -- ydb/core/tx/columnshard/engines/portions/common.h | 8 ++++++++ ydb/core/tx/columnshard/engines/portions/portion_info.h | 4 +++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/ydb/core/tx/columnshard/engines/changes/general_compaction.cpp b/ydb/core/tx/columnshard/engines/changes/general_compaction.cpp index 08e4fad95c66..8c095bbe091b 100644 --- a/ydb/core/tx/columnshard/engines/changes/general_compaction.cpp +++ b/ydb/core/tx/columnshard/engines/changes/general_compaction.cpp @@ -18,7 +18,6 @@ namespace NKikimr::NOlap::NCompaction { void TGeneralCompactColumnEngineChanges::BuildAppendedPortionsByFullBatches(TConstructionContext& context) noexcept { std::vector portions = TPortionInfoWithBlobs::RestorePortions(SwitchedPortions, Blobs); - Blobs.clear(); std::vector> batchResults; auto resultSchema = context.SchemaVersions.GetLastSchema(); { @@ -45,7 +44,6 @@ void TGeneralCompactColumnEngineChanges::BuildAppendedPortionsByFullBatches(TCon void TGeneralCompactColumnEngineChanges::BuildAppendedPortionsByChunks(TConstructionContext& context) noexcept { std::vector portions = TPortionInfoWithBlobs::RestorePortions(SwitchedPortions, Blobs); - Blobs.clear(); static const TString portionIdFieldName = "$$__portion_id"; static const TString portionRecordIndexFieldName = "$$__portion_record_idx"; static const std::shared_ptr portionIdField = std::make_shared(portionIdFieldName, std::make_shared()); diff --git a/ydb/core/tx/columnshard/engines/portions/common.h b/ydb/core/tx/columnshard/engines/portions/common.h index b0305fa53e9a..311563918469 100644 --- a/ydb/core/tx/columnshard/engines/portions/common.h +++ b/ydb/core/tx/columnshard/engines/portions/common.h @@ -8,6 +8,14 @@ class TChunkAddress { YDB_READONLY(ui32, ColumnId, 0); YDB_READONLY(ui16, Chunk, 0); public: + ui32 GetEntityId() const { + return ColumnId; + } + + ui32 GetChunkIdx() const { + return Chunk; + } + TChunkAddress(const ui32 columnId, const ui16 chunk) : ColumnId(columnId) , Chunk(chunk) { diff --git a/ydb/core/tx/columnshard/engines/portions/portion_info.h b/ydb/core/tx/columnshard/engines/portions/portion_info.h index 19ba5e3c1df7..00e4fd205aef 100644 --- a/ydb/core/tx/columnshard/engines/portions/portion_info.h +++ b/ydb/core/tx/columnshard/engines/portions/portion_info.h @@ -97,7 +97,9 @@ class TPortionInfo { TSerializationStats GetSerializationStat(const ISnapshotSchema& schema) const { TSerializationStats result; for (auto&& i : Records) { - result.AddStat(i.GetSerializationStat(schema.GetFieldByColumnIdVerified(i.ColumnId)->name())); + if (schema.GetFieldByColumnId(i.ColumnId)) { + result.AddStat(i.GetSerializationStat(schema.GetFieldByColumnIdVerified(i.ColumnId)->name())); + } } return result; } From 7c8565aada8ccbeb15ab7c3729c680dd82d171fe Mon Sep 17 00:00:00 2001 From: ivanmorozov333 Date: Tue, 16 Jan 2024 11:27:05 +0300 Subject: [PATCH 2/2] additional logging --- ydb/core/tx/columnshard/engines/scheme/abstract_scheme.cpp | 6 ++++++ ydb/core/tx/columnshard/engines/scheme/abstract_scheme.h | 6 +----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/ydb/core/tx/columnshard/engines/scheme/abstract_scheme.cpp b/ydb/core/tx/columnshard/engines/scheme/abstract_scheme.cpp index f138fc6b5f3f..13dc7a35f1e9 100644 --- a/ydb/core/tx/columnshard/engines/scheme/abstract_scheme.cpp +++ b/ydb/core/tx/columnshard/engines/scheme/abstract_scheme.cpp @@ -110,4 +110,10 @@ ui32 ISnapshotSchema::GetColumnId(const std::string& columnName) const { return *id; } +std::shared_ptr ISnapshotSchema::GetFieldByColumnIdVerified(const ui32 columnId) const { + auto result = GetFieldByColumnId(columnId); + AFL_VERIFY(result)("event", "unknown_column")("column_id", columnId); + return result; +} + } diff --git a/ydb/core/tx/columnshard/engines/scheme/abstract_scheme.h b/ydb/core/tx/columnshard/engines/scheme/abstract_scheme.h index 1ff127bee20a..9232edcf1dfe 100644 --- a/ydb/core/tx/columnshard/engines/scheme/abstract_scheme.h +++ b/ydb/core/tx/columnshard/engines/scheme/abstract_scheme.h @@ -52,11 +52,7 @@ class ISnapshotSchema { ui32 GetColumnId(const std::string& columnName) const; std::shared_ptr GetFieldByIndex(const int index) const; std::shared_ptr GetFieldByColumnId(const ui32 columnId) const; - std::shared_ptr GetFieldByColumnIdVerified(const ui32 columnId) const { - auto result = GetFieldByColumnId(columnId); - Y_ABORT_UNLESS(result); - return result; - } + std::shared_ptr GetFieldByColumnIdVerified(const ui32 columnId) const; TString DebugString() const { return DoDebugString();