aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIlnaz Nizametdinov <ilnaz@ydb.tech>2024-11-12 13:09:48 +0300
committerGitHub <noreply@github.com>2024-11-12 13:09:48 +0300
commit7be730f9f4e7bc6b72aadc471f6decd0bee0b0d6 (patch)
treee9db5c9d61c49ca5a46604e500ef92ca81e8eb00
parentf1bf21617534c893e66ebace4e84eddd1432fa82 (diff)
downloadydb-7be730f9f4e7bc6b72aadc471f6decd0bee0b0d6.tar.gz
Revert "Break persistent locks on scheme tx" (#11515)
-rw-r--r--ydb/core/tx/datashard/alter_table_unit.cpp4
-rw-r--r--ydb/core/tx/datashard/create_cdc_stream_unit.cpp4
-rw-r--r--ydb/core/tx/datashard/datashard.cpp5
-rw-r--r--ydb/core/tx/datashard/datashard_impl.h5
-rw-r--r--ydb/core/tx/datashard/datashard_ut_change_exchange.cpp38
-rw-r--r--ydb/core/tx/datashard/drop_cdc_stream_unit.cpp4
-rw-r--r--ydb/core/tx/datashard/drop_index_notice_unit.cpp4
-rw-r--r--ydb/core/tx/datashard/initiate_build_index_unit.cpp4
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);