Skip to content

Commit 0ab0d7a

Browse files
Fix write ids usage (#8909)
1 parent c0d60de commit 0ab0d7a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+775
-726
lines changed

.github/config/muted_ya.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ ydb/core/keyvalue/ut_trace TKeyValueTracingTest.*
1212
ydb/core/kqp/provider/ut KikimrIcGateway.TestLoadBasicSecretValueFromExternalDataSourceMetadata
1313
ydb/core/kqp/ut/olap KqpOlapBlobsSharing.*
1414
ydb/core/kqp/ut/olap KqpOlapStatistics.StatsUsageWithTTL
15-
ydb/core/kqp/ut/olap KqpOlap.TableSinkWithOlapStore
1615
ydb/core/kqp/ut/pg KqpPg.CreateIndex
1716
ydb/core/kqp/ut/query KqpLimits.QueryReplySize
1817
ydb/core/kqp/ut/query KqpQuery.QueryTimeout

ydb/core/kqp/ut/olap/kqp_olap_ut.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2897,13 +2897,12 @@ Y_UNIT_TEST_SUITE(KqpOlap) {
28972897

28982898
WriteTestData(kikimr, "/Root/olapStore/olapTable0", 0, 1000000, 3, true);
28992899

2900-
29012900
auto client = kikimr.GetQueryClient();
29022901
{
29032902
auto result = client.ExecuteQuery(R"(
29042903
SELECT * FROM `/Root/olapStore/olapTable0` ORDER BY timestamp;
29052904
INSERT INTO `/Root/olapStore/olapTable1` SELECT * FROM `/Root/olapStore/olapTable0`;
2906-
INSERT INTO `/Root/olapStore/olapTable0` SELECT * FROM `/Root/olapStore/olapTable1`;
2905+
REPLACE INTO `/Root/olapStore/olapTable0` SELECT * FROM `/Root/olapStore/olapTable1`;
29072906
SELECT * FROM `/Root/olapStore/olapTable1` ORDER BY timestamp;
29082907
)", NYdb::NQuery::TTxControl::BeginTx().CommitTx()).ExtractValueSync();
29092908
UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString());

ydb/core/tx/columnshard/blobs_action/transaction/tx_gc_insert_table.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
namespace NKikimr::NColumnShard {
66
class TTxInsertTableCleanup: public TTransactionBase<TColumnShard> {
77
private:
8-
THashSet<TWriteId> WriteIdsToAbort;
8+
THashSet<TInsertWriteId> WriteIdsToAbort;
99
std::shared_ptr<NOlap::IBlobsDeclareRemovingAction> BlobsAction;
1010
public:
11-
TTxInsertTableCleanup(TColumnShard* self, THashSet<TWriteId>&& writeIdsToAbort)
11+
TTxInsertTableCleanup(TColumnShard* self, THashSet<TInsertWriteId>&& writeIdsToAbort)
1212
: TBase(self)
1313
, WriteIdsToAbort(std::move(writeIdsToAbort)) {
1414
Y_ABORT_UNLESS(WriteIdsToAbort.size() || self->InsertTable->GetAborted().size());

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

Lines changed: 31 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
#include "tx_write.h"
2+
3+
#include <ydb/core/tx/columnshard/engines/insert_table/user_data.h>
24
#include <ydb/core/tx/columnshard/transactions/locks/write.h>
35

46
namespace NKikimr::NColumnShard {
57

6-
bool TTxWrite::InsertOneBlob(TTransactionContext& txc, const NOlap::TWideSerializedBatch& batch, const TWriteId writeId) {
8+
bool TTxWrite::InsertOneBlob(TTransactionContext& txc, const NOlap::TWideSerializedBatch& batch, const TInsertWriteId writeId) {
79
NKikimrTxColumnShard::TLogicalMetadata meta;
810
meta.SetNumRows(batch->GetRowsCount());
911
meta.SetRawBytes(batch->GetRawBytes());
@@ -23,9 +25,8 @@ bool TTxWrite::InsertOneBlob(TTransactionContext& txc, const NOlap::TWideSeriali
2325
auto schemeVersion = batch.GetAggregation().GetSchemaVersion();
2426
auto tableSchema = Self->TablesManager.GetPrimaryIndex()->GetVersionedIndex().GetSchemaVerified(schemeVersion);
2527

26-
NOlap::TInsertedData insertData((ui64)writeId, writeMeta.GetTableId(), writeMeta.GetDedupId(), blobRange,
27-
meta, tableSchema->GetVersion(),
28-
batch->GetData());
28+
auto userData = std::make_shared<NOlap::TUserData>(writeMeta.GetTableId(), blobRange, meta, tableSchema->GetVersion(), batch->GetData());
29+
NOlap::TInsertedData insertData(writeId, userData);
2930
bool ok = Self->InsertTable->Insert(dbTable, std::move(insertData));
3031
if (ok) {
3132
Self->UpdateInsertTableCounters();
@@ -36,7 +37,8 @@ bool TTxWrite::InsertOneBlob(TTransactionContext& txc, const NOlap::TWideSeriali
3637

3738
bool TTxWrite::Execute(TTransactionContext& txc, const TActorContext&) {
3839
TMemoryProfileGuard mpg("TTxWrite::Execute");
39-
NActors::TLogContextGuard logGuard = NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD_BLOBS)("tablet_id", Self->TabletID())("tx_state", "execute");
40+
NActors::TLogContextGuard logGuard =
41+
NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD_BLOBS)("tablet_id", Self->TabletID())("tx_state", "execute");
4042
ACFL_DEBUG("event", "start_execute");
4143
const NOlap::TWritingBuffer& buffer = PutBlobResult->Get()->MutableWritesBuffer();
4244
for (auto&& aggr : buffer.GetAggregations()) {
@@ -45,33 +47,27 @@ bool TTxWrite::Execute(TTransactionContext& txc, const TActorContext&) {
4547
txc.DB.NoMoreReadsForTx();
4648
TWriteOperation::TPtr operation;
4749
if (writeMeta.HasLongTxId()) {
50+
NIceDb::TNiceDb db(txc.DB);
51+
const TInsertWriteId insertWriteId =
52+
Self->GetLongTxWrite(db, writeMeta.GetLongTxIdUnsafe(), writeMeta.GetWritePartId(), writeMeta.GetGranuleShardingVersion());
53+
aggr->AddInsertWriteId(insertWriteId);
4854
if (writeMeta.IsGuaranteeWriter()) {
4955
AFL_VERIFY(aggr->GetSplittedBlobs().size() == 1)("count", aggr->GetSplittedBlobs().size());
5056
} else {
5157
AFL_VERIFY(aggr->GetSplittedBlobs().size() <= 1)("count", aggr->GetSplittedBlobs().size());
5258
}
59+
if (aggr->GetSplittedBlobs().size() == 1) {
60+
AFL_VERIFY(InsertOneBlob(txc, aggr->GetSplittedBlobs().front(), insertWriteId))("write_id", writeMeta.GetWriteId())(
61+
"insert_write_id", insertWriteId);
62+
}
5363
} else {
54-
operation = Self->OperationsManager->GetOperation((TWriteId)writeMeta.GetWriteId());
55-
Y_ABORT_UNLESS(operation);
64+
operation = Self->OperationsManager->GetOperationVerified((TOperationWriteId)writeMeta.GetWriteId());
5665
Y_ABORT_UNLESS(operation->GetStatus() == EOperationStatus::Started);
57-
}
58-
59-
auto writeId = TWriteId(writeMeta.GetWriteId());
60-
if (!operation) {
61-
NIceDb::TNiceDb db(txc.DB);
62-
writeId = Self->GetLongTxWrite(db, writeMeta.GetLongTxIdUnsafe(), writeMeta.GetWritePartId(), writeMeta.GetGranuleShardingVersion());
63-
aggr->AddWriteId(writeId);
64-
}
65-
66-
for (auto&& i : aggr->GetSplittedBlobs()) {
67-
if (operation) {
68-
writeId = Self->BuildNextWriteId(txc);
69-
aggr->AddWriteId(writeId);
70-
}
71-
72-
if (!InsertOneBlob(txc, i, writeId)) {
73-
LOG_S_DEBUG(TxPrefix() << "duplicate writeId " << (ui64)writeId << TxSuffix());
74-
Self->Counters.GetTabletCounters()->IncCounter(COUNTER_WRITE_DUPLICATE);
66+
for (auto&& i : aggr->GetSplittedBlobs()) {
67+
const TInsertWriteId insertWriteId = Self->InsertTable->BuildNextWriteId(txc);
68+
aggr->AddInsertWriteId(insertWriteId);
69+
AFL_VERIFY(InsertOneBlob(txc, i, insertWriteId))("write_id", writeMeta.GetWriteId())("insert_write_id", insertWriteId)(
70+
"size", aggr->GetSplittedBlobs().size());
7571
}
7672
}
7773
}
@@ -88,9 +84,10 @@ bool TTxWrite::Execute(TTransactionContext& txc, const TActorContext&) {
8884
for (auto&& aggr : buffer.GetAggregations()) {
8985
const auto& writeMeta = aggr->GetWriteMeta();
9086
if (!writeMeta.HasLongTxId()) {
91-
auto operation = Self->OperationsManager->GetOperationVerified((TWriteId)writeMeta.GetWriteId());
87+
auto operation = Self->OperationsManager->GetOperationVerified((TOperationWriteId)writeMeta.GetWriteId());
9288
Y_ABORT_UNLESS(operation->GetStatus() == EOperationStatus::Started);
93-
operation->OnWriteFinish(txc, aggr->GetWriteIds(), operation->GetBehaviour() == EOperationBehaviour::NoTxWrite);
89+
operation->OnWriteFinish(txc, aggr->GetInsertWriteIds(), operation->GetBehaviour() == EOperationBehaviour::NoTxWrite);
90+
Self->OperationsManager->LinkInsertWriteIdToOperationWriteId(aggr->GetInsertWriteIds(), operation->GetWriteId());
9491
if (operation->GetBehaviour() == EOperationBehaviour::NoTxWrite) {
9592
auto ev = NEvents::TDataEvents::TEvWriteResult::BuildCompleted(Self->TabletID());
9693
Results.emplace_back(std::move(ev), writeMeta.GetSource(), operation->GetCookie());
@@ -119,8 +116,9 @@ bool TTxWrite::Execute(TTransactionContext& txc, const TActorContext&) {
119116
Results.emplace_back(std::move(ev), writeMeta.GetSource(), operation->GetCookie());
120117
}
121118
} else {
122-
Y_ABORT_UNLESS(aggr->GetWriteIds().size() == 1);
123-
auto ev = std::make_unique<TEvColumnShard::TEvWriteResult>(Self->TabletID(), writeMeta, (ui64)aggr->GetWriteIds().front(), NKikimrTxColumnShard::EResultStatus::SUCCESS);
119+
Y_ABORT_UNLESS(aggr->GetInsertWriteIds().size() == 1);
120+
auto ev = std::make_unique<TEvColumnShard::TEvWriteResult>(
121+
Self->TabletID(), writeMeta, (ui64)aggr->GetInsertWriteIds().front(), NKikimrTxColumnShard::EResultStatus::SUCCESS);
124122
Results.emplace_back(std::move(ev), writeMeta.GetSource(), 0);
125123
}
126124
}
@@ -129,7 +127,8 @@ bool TTxWrite::Execute(TTransactionContext& txc, const TActorContext&) {
129127

130128
void TTxWrite::Complete(const TActorContext& ctx) {
131129
TMemoryProfileGuard mpg("TTxWrite::Complete");
132-
NActors::TLogContextGuard logGuard = NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD_BLOBS)("tablet_id", Self->TabletID())("tx_state", "complete");
130+
NActors::TLogContextGuard logGuard =
131+
NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD_BLOBS)("tablet_id", Self->TabletID())("tx_state", "complete");
133132
const auto now = TMonotonic::Now();
134133
const NOlap::TWritingBuffer& buffer = PutBlobResult->Get()->MutableWritesBuffer();
135134
for (auto&& i : buffer.GetAddActions()) {
@@ -149,7 +148,7 @@ void TTxWrite::Complete(const TActorContext& ctx) {
149148
for (ui32 i = 0; i < buffer.GetAggregations().size(); ++i) {
150149
const auto& writeMeta = buffer.GetAggregations()[i]->GetWriteMeta();
151150
if (!writeMeta.HasLongTxId()) {
152-
auto op = Self->GetOperationsManager().GetOperationVerified(NOlap::TWriteId(writeMeta.GetWriteId()));
151+
auto op = Self->GetOperationsManager().GetOperationVerified((TOperationWriteId)writeMeta.GetWriteId());
153152
if (op->GetBehaviour() == EOperationBehaviour::WriteWithLock || op->GetBehaviour() == EOperationBehaviour::NoTxWrite) {
154153
auto evWrite = std::make_shared<NOlap::NTxInteractions::TEvWriteWriter>(writeMeta.GetTableId(),
155154
buffer.GetAggregations()[i]->GetRecordBatch(), Self->GetIndexOptional()->GetVersionedIndex().GetPrimaryKey());
@@ -158,12 +157,11 @@ void TTxWrite::Complete(const TActorContext& ctx) {
158157
if (op->GetBehaviour() == EOperationBehaviour::NoTxWrite) {
159158
Self->OperationsManager->CommitTransactionOnComplete(*Self, op->GetLockId(), Self->GetLastTxSnapshot());
160159
}
161-
162160
}
163161
Self->Counters.GetCSCounters().OnWriteTxComplete(now - writeMeta.GetWriteStartInstant());
164162
Self->Counters.GetCSCounters().OnSuccessWriteResponse();
165163
}
166164
Self->Counters.GetTabletCounters()->IncCounter(COUNTER_IMMEDIATE_TX_COMPLETED);
167165
}
168166

169-
}
167+
} // namespace NKikimr::NColumnShard

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class TTxWrite : public NTabletFlatExecutor::TTransactionBase<TColumnShard> {
4343
std::vector<std::shared_ptr<TTxController::ITransactionOperator>> ResultOperators;
4444

4545

46-
bool InsertOneBlob(TTransactionContext& txc, const NOlap::TWideSerializedBatch& batch, const TWriteId writeId);
46+
bool InsertOneBlob(TTransactionContext& txc, const NOlap::TWideSerializedBatch& batch, const TInsertWriteId writeId);
4747

4848
TStringBuilder TxPrefix() const {
4949
return TStringBuilder() << "TxWrite[" << ToString(TabletTxNo) << "] ";

ydb/core/tx/columnshard/columnshard.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ void TColumnShard::UpdateIndexCounters() {
301301

302302
ui64 TColumnShard::MemoryUsage() const {
303303
ui64 memory = ProgressTxController->GetMemoryUsage() + ScanTxInFlight.size() * (sizeof(ui64) + sizeof(TInstant)) +
304-
LongTxWrites.size() * (sizeof(TWriteId) + sizeof(TLongTxWriteInfo)) +
304+
LongTxWrites.size() * (sizeof(TInsertWriteId) + sizeof(TLongTxWriteInfo)) +
305305
LongTxWritesByUniqueId.size() * (sizeof(TULID) + sizeof(void*)) +
306306
(WaitingScans.size()) * (sizeof(NOlap::TSnapshot) + sizeof(void*)) +
307307
Counters.GetTabletCounters()->GetValue(COUNTER_PREPARED_RECORDS) * sizeof(NOlap::TInsertedData) +

ydb/core/tx/columnshard/columnshard__init.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ void TTxInit::SetDefaults() {
4141
Self->CurrentSchemeShardId = 0;
4242
Self->LastSchemaSeqNo = { };
4343
Self->ProcessingParams.reset();
44-
Self->LastWriteId = TWriteId{0};
4544
Self->LastPlannedStep = 0;
4645
Self->LastPlannedTxId = 0;
4746
Self->LastCompletedTx = NOlap::TSnapshot::Zero();
@@ -73,7 +72,6 @@ bool TTxInit::Precharge(TTransactionContext& txc) {
7372
ready = ready && Schema::GetSpecialValueOpt(db, Schema::EValueIds::LastSchemaSeqNoGeneration, Self->LastSchemaSeqNo.Generation);
7473
ready = ready && Schema::GetSpecialValueOpt(db, Schema::EValueIds::LastSchemaSeqNoRound, Self->LastSchemaSeqNo.Round);
7574
ready = ready && Schema::GetSpecialProtoValue(db, Schema::EValueIds::ProcessingParams, Self->ProcessingParams);
76-
ready = ready && Schema::GetSpecialValueOpt(db, Schema::EValueIds::LastWriteId, Self->LastWriteId);
7775
ready = ready && Schema::GetSpecialValueOpt(db, Schema::EValueIds::LastPlannedStep, Self->LastPlannedStep);
7876
ready = ready && Schema::GetSpecialValueOpt(db, Schema::EValueIds::LastPlannedTxId, Self->LastPlannedTxId);
7977
ready = ready && Schema::GetSpecialValueOpt(db, Schema::EValueIds::LastExportNumber, Self->LastExportNo);
@@ -107,7 +105,7 @@ bool TTxInit::ReadEverything(TTransactionContext& txc, const TActorContext& ctx)
107105
ACFL_DEBUG("step", "TInsertTable::Load_Start");
108106
TMemoryProfileGuard g("TTxInit/InsertTable");
109107
auto localInsertTable = std::make_unique<NOlap::TInsertTable>();
110-
if (!localInsertTable->Load(dbTable, TAppData::TimeProvider->Now())) {
108+
if (!localInsertTable->Load(db, dbTable, TAppData::TimeProvider->Now())) {
111109
ACFL_ERROR("step", "TInsertTable::Load_Fails");
112110
return false;
113111
}
@@ -182,7 +180,7 @@ bool TTxInit::ReadEverything(TTransactionContext& txc, const TActorContext& ctx)
182180
}
183181

184182
while (!rowset.EndOfSet()) {
185-
const TWriteId writeId = TWriteId{ rowset.GetValue<Schema::LongTxWrites::WriteId>() };
183+
const TInsertWriteId writeId = (TInsertWriteId)rowset.GetValue<Schema::LongTxWrites::WriteId>();
186184
const ui32 writePartId = rowset.GetValue<Schema::LongTxWrites::WritePartId>();
187185
NKikimrLongTxService::TLongTxId proto;
188186
Y_ABORT_UNLESS(proto.ParseFromString(rowset.GetValue<Schema::LongTxWrites::LongTxId>()));

ydb/core/tx/columnshard/columnshard__write.cpp

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ void TColumnShard::Handle(TEvPrivate::TEvWriteBlobsResult::TPtr& ev, const TActo
129129
auto result = std::make_unique<TEvColumnShard::TEvWriteResult>(TabletID(), writeMeta, errCode);
130130
ctx.Send(writeMeta.GetSource(), result.release());
131131
} else {
132-
auto operation = OperationsManager->GetOperation((TWriteId)writeMeta.GetWriteId());
132+
auto operation = OperationsManager->GetOperation((TOperationWriteId)writeMeta.GetWriteId());
133133
Y_ABORT_UNLESS(operation);
134134
auto result = NEvents::TDataEvents::TEvWriteResult::BuildError(TabletID(), operation->GetLockId(),
135135
ev->Get()->GetWriteResultStatus(), ev->Get()->GetErrorMessage() ? ev->Get()->GetErrorMessage() : "put data fails");
@@ -289,7 +289,7 @@ class TCommitOperation {
289289
}
290290

291291
TConclusionStatus Parse(const NEvents::TDataEvents::TEvWrite& evWrite) {
292-
AFL_VERIFY(evWrite.Record.GetLocks().GetLocks().size() == 1);
292+
AFL_VERIFY(evWrite.Record.GetLocks().GetLocks().size() >= 1);
293293
auto& locks = evWrite.Record.GetLocks();
294294
auto& lock = evWrite.Record.GetLocks().GetLocks()[0];
295295
SendingShards = std::set<ui64>(locks.GetSendingShards().begin(), locks.GetSendingShards().end());
@@ -324,7 +324,8 @@ class TCommitOperation {
324324
return TConclusionStatus::Success();
325325
}
326326

327-
std::unique_ptr<NColumnShard::TEvWriteCommitSyncTransactionOperator> CreateTxOperator(const NKikimrTxColumnShard::ETransactionKind kind) const {
327+
std::unique_ptr<NColumnShard::TEvWriteCommitSyncTransactionOperator> CreateTxOperator(
328+
const NKikimrTxColumnShard::ETransactionKind kind) const {
328329
AFL_VERIFY(ReceivingShards.size());
329330
if (IsPrimary()) {
330331
return std::make_unique<NColumnShard::TEvWriteCommitPrimaryTransactionOperator>(
@@ -428,15 +429,16 @@ void TColumnShard::Handle(NEvents::TDataEvents::TEvWrite::TPtr& ev, const TActor
428429
const auto& record = ev->Get()->Record;
429430
const auto source = ev->Sender;
430431
const auto cookie = ev->Cookie;
431-
const auto behaviour = TOperationsManager::GetBehaviour(*ev->Get());
432-
// AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("ev_write", record.DebugString());
433-
if (behaviour == EOperationBehaviour::Undefined) {
432+
const auto behaviourConclusion = TOperationsManager::GetBehaviour(*ev->Get());
433+
// AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("ev_write", record.DebugString());
434+
if (behaviourConclusion.IsFail()) {
434435
Counters.GetTabletCounters()->IncCounter(COUNTER_WRITE_FAIL);
435-
auto result = NEvents::TDataEvents::TEvWriteResult::BuildError(
436-
TabletID(), 0, NKikimrDataEvents::TEvWriteResult::STATUS_BAD_REQUEST, "invalid write event");
436+
auto result = NEvents::TDataEvents::TEvWriteResult::BuildError(TabletID(), 0, NKikimrDataEvents::TEvWriteResult::STATUS_BAD_REQUEST,
437+
"invalid write event: " + behaviourConclusion.GetErrorMessage());
437438
ctx.Send(source, result.release(), 0, cookie);
438439
return;
439440
}
441+
auto behaviour = *behaviourConclusion;
440442

441443
if (behaviour == EOperationBehaviour::AbortWriteLock) {
442444
Execute(new TAbortWriteTransaction(this, record.GetLocks().GetLocks()[0].GetLockId(), source, cookie), ctx);
@@ -447,8 +449,7 @@ void TColumnShard::Handle(NEvents::TDataEvents::TEvWrite::TPtr& ev, const TActor
447449
auto commitOperation = std::make_shared<TCommitOperation>(TabletID());
448450
const auto sendError = [&](const TString& message, const NKikimrDataEvents::TEvWriteResult::EStatus status) {
449451
Counters.GetTabletCounters()->IncCounter(COUNTER_WRITE_FAIL);
450-
auto result =
451-
NEvents::TDataEvents::TEvWriteResult::BuildError(TabletID(), 0, status, message);
452+
auto result = NEvents::TDataEvents::TEvWriteResult::BuildError(TabletID(), 0, status, message);
452453
ctx.Send(source, result.release(), 0, cookie);
453454
};
454455
auto conclusionParse = commitOperation->Parse(*ev->Get());
@@ -466,7 +467,8 @@ void TColumnShard::Handle(NEvents::TDataEvents::TEvWrite::TPtr& ev, const TActor
466467
" != " + ::ToString(commitOperation->GetGeneration()),
467468
NKikimrDataEvents::TEvWriteResult::STATUS_LOCKS_BROKEN);
468469
} else if (lockInfo->GetInternalGenerationCounter() != commitOperation->GetInternalGenerationCounter()) {
469-
sendError("tablet lock have another internal generation counter: " + ::ToString(lockInfo->GetInternalGenerationCounter()) +
470+
sendError(
471+
"tablet lock have another internal generation counter: " + ::ToString(lockInfo->GetInternalGenerationCounter()) +
470472
" != " + ::ToString(commitOperation->GetInternalGenerationCounter()),
471473
NKikimrDataEvents::TEvWriteResult::STATUS_LOCKS_BROKEN);
472474
} else {

ydb/core/tx/columnshard/columnshard_common.cpp

Lines changed: 0 additions & 18 deletions
This file was deleted.

0 commit comments

Comments
 (0)