diff options
author | Ilnaz Nizametdinov <ilnaz@ydb.tech> | 2024-11-12 13:09:48 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-12 13:09:48 +0300 |
commit | 7be730f9f4e7bc6b72aadc471f6decd0bee0b0d6 (patch) | |
tree | e9db5c9d61c49ca5a46604e500ef92ca81e8eb00 | |
parent | f1bf21617534c893e66ebace4e84eddd1432fa82 (diff) | |
download | ydb-7be730f9f4e7bc6b72aadc471f6decd0bee0b0d6.tar.gz |
Revert "Break persistent locks on scheme tx" (#11515)
-rw-r--r-- | ydb/core/tx/datashard/alter_table_unit.cpp | 4 | ||||
-rw-r--r-- | ydb/core/tx/datashard/create_cdc_stream_unit.cpp | 4 | ||||
-rw-r--r-- | ydb/core/tx/datashard/datashard.cpp | 5 | ||||
-rw-r--r-- | ydb/core/tx/datashard/datashard_impl.h | 5 | ||||
-rw-r--r-- | ydb/core/tx/datashard/datashard_ut_change_exchange.cpp | 38 | ||||
-rw-r--r-- | ydb/core/tx/datashard/drop_cdc_stream_unit.cpp | 4 | ||||
-rw-r--r-- | ydb/core/tx/datashard/drop_index_notice_unit.cpp | 4 | ||||
-rw-r--r-- | ydb/core/tx/datashard/initiate_build_index_unit.cpp | 4 |
8 files changed, 9 insertions, 59 deletions
diff --git a/ydb/core/tx/datashard/alter_table_unit.cpp b/ydb/core/tx/datashard/alter_table_unit.cpp index 60167f66252..59697e00079 100644 --- a/ydb/core/tx/datashard/alter_table_unit.cpp +++ b/ydb/core/tx/datashard/alter_table_unit.cpp @@ -1,5 +1,4 @@ #include "datashard_impl.h" -#include "datashard_locks_db.h" #include "datashard_pipeline.h" #include "execution_unit_ctors.h" @@ -152,8 +151,7 @@ EExecutionStatus TAlterTableUnit::Execute(TOperation::TPtr op, } TUserTable::TPtr info = DataShard.AlterUserTable(ctx, txc, alterTableTx); - TDataShardLocksDb locksDb(DataShard, txc); - DataShard.AddUserTable(tableId, info, &locksDb); + DataShard.AddUserTable(tableId, info); if (info->NeedSchemaSnapshots()) { DataShard.AddSchemaSnapshot(tableId, version, op->GetStep(), op->GetTxId(), txc, ctx); diff --git a/ydb/core/tx/datashard/create_cdc_stream_unit.cpp b/ydb/core/tx/datashard/create_cdc_stream_unit.cpp index 67b31fbdc6b..1f690063de5 100644 --- a/ydb/core/tx/datashard/create_cdc_stream_unit.cpp +++ b/ydb/core/tx/datashard/create_cdc_stream_unit.cpp @@ -1,5 +1,4 @@ #include "datashard_impl.h" -#include "datashard_locks_db.h" #include "datashard_pipeline.h" #include "execution_unit_ctors.h" @@ -44,8 +43,7 @@ public: Y_ABORT_UNLESS(version); auto tableInfo = DataShard.AlterTableAddCdcStream(ctx, txc, pathId, version, streamDesc); - TDataShardLocksDb locksDb(DataShard, txc); - DataShard.AddUserTable(pathId, tableInfo, &locksDb); + DataShard.AddUserTable(pathId, tableInfo); if (tableInfo->NeedSchemaSnapshots()) { DataShard.AddSchemaSnapshot(pathId, version, op->GetStep(), op->GetTxId(), txc, ctx); diff --git a/ydb/core/tx/datashard/datashard.cpp b/ydb/core/tx/datashard/datashard.cpp index 6771f4517ec..17cc5f57020 100644 --- a/ydb/core/tx/datashard/datashard.cpp +++ b/ydb/core/tx/datashard/datashard.cpp @@ -1890,6 +1890,7 @@ TUserTable::TPtr TDataShard::MoveUserTable(TOperation::TPtr op, const NKikimrTxD newTableInfo->StatsNeedUpdate = true; TDataShardLocksDb locksDb(*this, txc); + RemoveUserTable(prevId, &locksDb); AddUserTable(newId, newTableInfo); @@ -1966,8 +1967,8 @@ TUserTable::TPtr TDataShard::MoveUserIndex(TOperation::TPtr op, const NKikimrTxD } newTableInfo->SetSchema(schema); - TDataShardLocksDb locksDb(*this, txc); - AddUserTable(pathId, newTableInfo, &locksDb); + + AddUserTable(pathId, newTableInfo); if (newTableInfo->NeedSchemaSnapshots()) { AddSchemaSnapshot(pathId, version, op->GetStep(), op->GetTxId(), txc, ctx); diff --git a/ydb/core/tx/datashard/datashard_impl.h b/ydb/core/tx/datashard/datashard_impl.h index a5c275c22f0..f103724450a 100644 --- a/ydb/core/tx/datashard/datashard_impl.h +++ b/ydb/core/tx/datashard/datashard_impl.h @@ -1632,10 +1632,7 @@ public: TableInfos.erase(tableId.LocalPathId); } - void AddUserTable(const TPathId& tableId, TUserTable::TPtr tableInfo, ILocksDb* locksDb = nullptr) { - if (locksDb) { - SysLocks.RemoveSchema(tableId, locksDb); - } + void AddUserTable(const TPathId& tableId, TUserTable::TPtr tableInfo) { TableInfos[tableId.LocalPathId] = tableInfo; SysLocks.UpdateSchema(tableId, tableInfo->KeyColumnTypes); Pipeline.GetDepTracker().UpdateSchema(tableId, *tableInfo); diff --git a/ydb/core/tx/datashard/datashard_ut_change_exchange.cpp b/ydb/core/tx/datashard/datashard_ut_change_exchange.cpp index e3e61412efc..40614b6abe7 100644 --- a/ydb/core/tx/datashard/datashard_ut_change_exchange.cpp +++ b/ydb/core/tx/datashard/datashard_ut_change_exchange.cpp @@ -3868,44 +3868,6 @@ Y_UNIT_TEST_SUITE(Cdc) { MustNotLoseSchemaSnapshot(true); } - Y_UNIT_TEST(ShouldBreakLocksOnConcurrentSchemeTx) { - TPortManager portManager; - TServer::TPtr server = new TServer(TServerSettings(portManager.GetPort(2134), {}, DefaultPQConfig()) - .SetUseRealThreads(false) - .SetDomainName("Root") - ); - - auto& runtime = *server->GetRuntime(); - const auto edgeActor = runtime.AllocateEdgeActor(); - - SetupLogging(runtime); - InitRoot(server, edgeActor); - CreateShardedTable(server, edgeActor, "/Root", "Table", SimpleTable()); - - WaitTxNotification(server, edgeActor, AsyncAlterAddStream(server, "/Root", "Table", - Updates(NKikimrSchemeOp::ECdcStreamFormatJson))); - - ExecSQL(server, edgeActor, "UPSERT INTO `/Root/Table` (key, value) VALUES (1, 10);"); - - TString sessionId; - TString txId; - KqpSimpleBegin(runtime, sessionId, txId, "UPSERT INTO `/Root/Table` (key, value) VALUES (1, 11);"); - - UNIT_ASSERT_VALUES_EQUAL( - KqpSimpleContinue(runtime, sessionId, txId, "SELECT key, value FROM `/Root/Table`;"), - "{ items { uint32_value: 1 } items { uint32_value: 11 } }"); - - WaitTxNotification(server, edgeActor, AsyncAlterAddExtraColumn(server, "/Root", "Table")); - - UNIT_ASSERT_VALUES_EQUAL( - KqpSimpleCommit(runtime, sessionId, txId, "SELECT 1;"), - "ERROR: ABORTED"); - - WaitForContent(server, edgeActor, "/Root/Table/Stream", { - R"({"update":{"value":10},"key":[1]})", - }); - } - Y_UNIT_TEST(ResolvedTimestampsContinueAfterMerge) { TPortManager portManager; TServer::TPtr server = new TServer(TServerSettings(portManager.GetPort(2134), {}, DefaultPQConfig()) diff --git a/ydb/core/tx/datashard/drop_cdc_stream_unit.cpp b/ydb/core/tx/datashard/drop_cdc_stream_unit.cpp index 64fcf486346..359bdd455f1 100644 --- a/ydb/core/tx/datashard/drop_cdc_stream_unit.cpp +++ b/ydb/core/tx/datashard/drop_cdc_stream_unit.cpp @@ -1,5 +1,4 @@ #include "datashard_impl.h" -#include "datashard_locks_db.h" #include "datashard_pipeline.h" #include "execution_unit_ctors.h" @@ -41,8 +40,7 @@ public: Y_ABORT_UNLESS(version); auto tableInfo = DataShard.AlterTableDropCdcStream(ctx, txc, pathId, version, streamPathId); - TDataShardLocksDb locksDb(DataShard, txc); - DataShard.AddUserTable(pathId, tableInfo, &locksDb); + DataShard.AddUserTable(pathId, tableInfo); if (tableInfo->NeedSchemaSnapshots()) { DataShard.AddSchemaSnapshot(pathId, version, op->GetStep(), op->GetTxId(), txc, ctx); diff --git a/ydb/core/tx/datashard/drop_index_notice_unit.cpp b/ydb/core/tx/datashard/drop_index_notice_unit.cpp index 6d45bd13a2a..d1df5149c41 100644 --- a/ydb/core/tx/datashard/drop_index_notice_unit.cpp +++ b/ydb/core/tx/datashard/drop_index_notice_unit.cpp @@ -1,5 +1,4 @@ #include "datashard_impl.h" -#include "datashard_locks_db.h" #include "datashard_pipeline.h" #include "execution_unit_ctors.h" @@ -53,8 +52,7 @@ public: } Y_ABORT_UNLESS(tableInfo); - TDataShardLocksDb locksDb(DataShard, txc); - DataShard.AddUserTable(pathId, tableInfo, &locksDb); + DataShard.AddUserTable(pathId, tableInfo); if (tableInfo->NeedSchemaSnapshots()) { DataShard.AddSchemaSnapshot(pathId, version, op->GetStep(), op->GetTxId(), txc, ctx); diff --git a/ydb/core/tx/datashard/initiate_build_index_unit.cpp b/ydb/core/tx/datashard/initiate_build_index_unit.cpp index d0bc48a8aa4..a2ac702a739 100644 --- a/ydb/core/tx/datashard/initiate_build_index_unit.cpp +++ b/ydb/core/tx/datashard/initiate_build_index_unit.cpp @@ -1,5 +1,4 @@ #include "datashard_impl.h" -#include "datashard_locks_db.h" #include "datashard_pipeline.h" #include "execution_unit_ctors.h" @@ -54,8 +53,7 @@ public: } Y_ABORT_UNLESS(tableInfo); - TDataShardLocksDb locksDb(DataShard, txc); - DataShard.AddUserTable(pathId, tableInfo, &locksDb); + DataShard.AddUserTable(pathId, tableInfo); if (tableInfo->NeedSchemaSnapshots()) { DataShard.AddSchemaSnapshot(pathId, version, op->GetStep(), op->GetTxId(), txc, ctx); |