Skip to content

fix pk usage in writing v0 chunks #18106

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: stable-25-1-1
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ bool TTxBlobsWritingFinished::DoExecute(TTransactionContext& txc, const TActorCo
}
AFL_VERIFY(!!PackBehaviour);
auto& granule = index.MutableGranuleVerified(Pack.GetPathId());
const ui64 firstPKColumnId = Self->TablesManager.GetIndexInfo(*CommitSnapshot).GetPKFirstColumnId();
for (auto&& portion : Pack.MutablePortions()) {
if (PackBehaviour == EOperationBehaviour::NoTxWrite) {
static TAtomicCounter Counter = 0;
Expand All @@ -39,9 +40,9 @@ bool TTxBlobsWritingFinished::DoExecute(TTransactionContext& txc, const TActorCo
InsertWriteIds.emplace_back(portion.GetPortionInfoConstructor()->GetPortionConstructor().GetInsertWriteIdVerified());
portion.Finalize(Self, txc);
if (PackBehaviour == EOperationBehaviour::NoTxWrite) {
granule.CommitImmediateOnExecute(txc, *CommitSnapshot, portion.GetPortionInfo());
granule.CommitImmediateOnExecute(txc, *CommitSnapshot, portion.GetPortionInfo(), firstPKColumnId);
} else {
granule.InsertPortionOnExecute(txc, portion.GetPortionInfo());
granule.InsertPortionOnExecute(txc, portion.GetPortionInfo(), firstPKColumnId);
}
}

Expand Down
8 changes: 4 additions & 4 deletions ydb/core/tx/columnshard/engines/storage/granule/granule.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -277,10 +277,10 @@ void TGranuleMeta::InsertPortionOnComplete(const TPortionDataAccessor& portion,
DataAccessorsManager->AddPortion(portion);
}

void TGranuleMeta::InsertPortionOnExecute(NTabletFlatExecutor::TTransactionContext& txc, const TPortionDataAccessor& portion) const {
void TGranuleMeta::InsertPortionOnExecute(NTabletFlatExecutor::TTransactionContext& txc, const TPortionDataAccessor& portion, const ui64 firstPKColumnId) const {
AFL_VERIFY(!InsertedPortions.contains(portion.GetPortionInfo().GetInsertWriteIdVerified()));
TDbWrapper wrapper(txc.DB, nullptr);
portion.SaveToDatabase(wrapper, 0, false);
portion.SaveToDatabase(wrapper, firstPKColumnId, false);
}

void TGranuleMeta::CommitPortionOnExecute(
Expand All @@ -306,11 +306,11 @@ void TGranuleMeta::CommitPortionOnComplete(const TInsertWriteId insertWriteId, I
}

void TGranuleMeta::CommitImmediateOnExecute(
NTabletFlatExecutor::TTransactionContext& txc, const TSnapshot& snapshot, const TPortionDataAccessor& portion) const {
NTabletFlatExecutor::TTransactionContext& txc, const TSnapshot& snapshot, const TPortionDataAccessor& portion, const ui64 firstPKColumnId) const {
AFL_VERIFY(!InsertedPortions.contains(portion.GetPortionInfo().GetInsertWriteIdVerified()));
portion.MutablePortionInfo().SetCommitSnapshot(snapshot);
TDbWrapper wrapper(txc.DB, nullptr);
portion.SaveToDatabase(wrapper, 0, false);
portion.SaveToDatabase(wrapper, firstPKColumnId, false);
}

void TGranuleMeta::CommitImmediateOnComplete(const std::shared_ptr<TPortionInfo> /*portion*/, IColumnEngine& /*engine*/) {
Expand Down
7 changes: 4 additions & 3 deletions ydb/core/tx/columnshard/engines/storage/granule/granule.h
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,8 @@ class TGranuleMeta: TNonCopyable {
OnAfterChangePortion(innerPortion, nullptr);
}

void InsertPortionOnExecute(NTabletFlatExecutor::TTransactionContext& txc, const TPortionDataAccessor& portion) const;
void InsertPortionOnExecute(
NTabletFlatExecutor::TTransactionContext& txc, const TPortionDataAccessor& portion, const ui64 firstPKColumnId) const;
void InsertPortionOnComplete(const TPortionDataAccessor& portion, IColumnEngine& engine);

void CommitPortionOnExecute(
Expand All @@ -230,8 +231,8 @@ class TGranuleMeta: TNonCopyable {
CommitPortionOnComplete(insertWriteId, engine);
}

void CommitImmediateOnExecute(
NTabletFlatExecutor::TTransactionContext& txc, const TSnapshot& snapshot, const TPortionDataAccessor& portion) const;
void CommitImmediateOnExecute(NTabletFlatExecutor::TTransactionContext& txc, const TSnapshot& snapshot, const TPortionDataAccessor& portion,
const ui64 firstPKColumnId) const;
void CommitImmediateOnComplete(const std::shared_ptr<TPortionInfo> portion, IColumnEngine& engine);

std::vector<NStorageOptimizer::TTaskDescription> GetOptimizerTasksDescription() const {
Expand Down
Loading