diff options
author | ilnaz <ilnaz@ydb.tech> | 2023-02-10 09:08:30 +0300 |
---|---|---|
committer | ilnaz <ilnaz@ydb.tech> | 2023-02-10 09:08:30 +0300 |
commit | dc0689f4b8d3ad768206ea71f8ad7e0bbdbf1551 (patch) | |
tree | 807192617c73e0dbcedf111aeda2f9ed00130acc | |
parent | 5ed7ba7c6b25c05beb8d360e3e3d4858cd9cf90a (diff) | |
download | ydb-dc0689f4b8d3ad768206ea71f8ad7e0bbdbf1551.tar.gz |
(refactoring) Common AbortUnsafe() impl for drop ops
12 files changed, 39 insertions, 216 deletions
diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_common.cpp b/ydb/core/tx/schemeshard/schemeshard__operation_common.cpp index af2e16c89ea..5888279779e 100644 --- a/ydb/core/tx/schemeshard/schemeshard__operation_common.cpp +++ b/ydb/core/tx/schemeshard/schemeshard__operation_common.cpp @@ -683,5 +683,29 @@ NKikimrSchemeOp::TModifyScheme MoveTableIndexTask(NKikimr::NSchemeShard::TPath& return scheme; } +void AbortUnsafeDropOperation(const TOperationId& opId, const TTxId& txId, TOperationContext& context) { + TTxState* txState = context.SS->FindTx(opId); + Y_VERIFY(txState); + + LOG_NOTICE_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD, "" + << TTxState::TypeName(txState->TxType) << " AbortUnsafe" + << ": opId# " << opId + << ", txId# " << txId + << ", ssId# " << context.SS->TabletID()); + + const auto& pathId = txState->TargetPathId; + Y_VERIFY(context.SS->PathsById.contains(pathId)); + auto path = context.SS->PathsById.at(pathId); + Y_VERIFY(path); + + if (path->Dropped()) { + for (const auto& shard : txState->Shards) { + context.OnComplete.DeleteShard(shard.Idx); + } + } + + context.OnComplete.DoneOperation(opId); +} + } } diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_common.h b/ydb/core/tx/schemeshard/schemeshard__operation_common.h index fe08e99eb32..69e639b9435 100644 --- a/ydb/core/tx/schemeshard/schemeshard__operation_common.h +++ b/ydb/core/tx/schemeshard/schemeshard__operation_common.h @@ -18,6 +18,8 @@ NKikimrSchemeOp::TModifyScheme MoveTableIndexTask(NKikimr::NSchemeShard::TPath& THolder<TEvHive::TEvCreateTablet> CreateEvCreateTablet(TPathElement::TPtr targetPath, TShardIdx shardIdx, TOperationContext& context); +void AbortUnsafeDropOperation(const TOperationId& operationId, const TTxId& txId, TOperationContext& context); + namespace NTableState { bool CollectProposeTransactionResults(const TOperationId& operationId, const TEvDataShard::TEvProposeTransactionResult::TPtr& ev, TOperationContext& context); @@ -414,7 +416,6 @@ public: } }; - class TDone: public TSubOperationState { protected: TOperationId OperationId; @@ -488,7 +489,6 @@ public: } }; - namespace NPQState { class TConfigureParts: public TSubOperationState { @@ -817,7 +817,7 @@ public: } }; -} +} // NPQState namespace NBSVState { @@ -1034,7 +1034,7 @@ public: } }; -} +} // NBSVState namespace NCdcStreamState { diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_drop_bsv.cpp b/ydb/core/tx/schemeshard/schemeshard__operation_drop_bsv.cpp index 6e13f379bda..e6fdf799068 100644 --- a/ydb/core/tx/schemeshard/schemeshard__operation_drop_bsv.cpp +++ b/ydb/core/tx/schemeshard/schemeshard__operation_drop_bsv.cpp @@ -274,27 +274,7 @@ public: } void AbortUnsafe(TTxId forceDropTxId, TOperationContext& context) override { - LOG_NOTICE_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD, - "TDropBlockStorageVolume AbortUnsafe" - << ", opId: " << OperationId - << ", forceDropId: " << forceDropTxId - << ", at schemeshard: " << context.SS->TabletID()); - - TTxState* txState = context.SS->FindTx(OperationId); - Y_VERIFY(txState); - - TPathId pathId = txState->TargetPathId; - Y_VERIFY(context.SS->PathsById.contains(pathId)); - TPathElement::TPtr path = context.SS->PathsById.at(pathId); - Y_VERIFY(path); - - if (path->Dropped()) { - for (auto shard : txState->Shards) { - context.OnComplete.DeleteShard(shard.Idx); - } - } - - context.OnComplete.DoneOperation(OperationId); + AbortUnsafeDropOperation(OperationId, forceDropTxId, context); } }; diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_drop_extsubdomain.cpp b/ydb/core/tx/schemeshard/schemeshard__operation_drop_extsubdomain.cpp index 6583cc3cb84..6f149786ec7 100644 --- a/ydb/core/tx/schemeshard/schemeshard__operation_drop_extsubdomain.cpp +++ b/ydb/core/tx/schemeshard/schemeshard__operation_drop_extsubdomain.cpp @@ -382,27 +382,7 @@ public: } void AbortUnsafe(TTxId forceDropTxId, TOperationContext& context) override { - LOG_NOTICE_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD, - "TDropExtSubdomain AbortUnsafe" - << ", opId: " << OperationId - << ", forceDropId: " << forceDropTxId - << ", at schemeshard: " << context.SS->TabletID()); - - TTxState* txState = context.SS->FindTx(OperationId); - Y_VERIFY(txState); - - TPathId pathId = txState->TargetPathId; - Y_VERIFY(context.SS->PathsById.contains(pathId)); - TPathElement::TPtr path = context.SS->PathsById.at(pathId); - Y_VERIFY(path); - - if (path->Dropped()) { - for (auto shard : txState->Shards) { - context.OnComplete.DeleteShard(shard.Idx); - } - } - - context.OnComplete.DoneOperation(OperationId); + AbortUnsafeDropOperation(OperationId, forceDropTxId, context); } }; diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_drop_fs.cpp b/ydb/core/tx/schemeshard/schemeshard__operation_drop_fs.cpp index 569c497d12d..355725f3261 100644 --- a/ydb/core/tx/schemeshard/schemeshard__operation_drop_fs.cpp +++ b/ydb/core/tx/schemeshard/schemeshard__operation_drop_fs.cpp @@ -160,28 +160,7 @@ public: } void AbortUnsafe(TTxId forceDropTxId, TOperationContext& context) override { - LOG_NOTICE_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD, - "TDropFileStore AbortUnsafe" - << ", opId: " << OperationId - << ", forceDropId: " << forceDropTxId - << ", at schemeshard: " << context.SS->TabletID()); - - auto* txState = context.SS->FindTx(OperationId); - Y_VERIFY(txState); - - TPathId pathId = txState->TargetPathId; - Y_VERIFY(context.SS->PathsById.contains(pathId)); - - TPathElement::TPtr path = context.SS->PathsById.at(pathId); - Y_VERIFY(path); - - if (path->Dropped()) { - for (const auto& shard: txState->Shards) { - context.OnComplete.DeleteShard(shard.Idx); - } - } - - context.OnComplete.DoneOperation(OperationId); + AbortUnsafeDropOperation(OperationId, forceDropTxId, context); } private: diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_drop_kesus.cpp b/ydb/core/tx/schemeshard/schemeshard__operation_drop_kesus.cpp index 2f1ff7b47c5..e4f6f303172 100644 --- a/ydb/core/tx/schemeshard/schemeshard__operation_drop_kesus.cpp +++ b/ydb/core/tx/schemeshard/schemeshard__operation_drop_kesus.cpp @@ -262,27 +262,7 @@ public: } void AbortUnsafe(TTxId forceDropTxId, TOperationContext& context) override { - LOG_NOTICE_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD, - "TDropKesus AbortUnsafe" - << ", opId: " << OperationId - << ", forceDropId: " << forceDropTxId - << ", at schemeshard: " << context.SS->TabletID()); - - TTxState* txState = context.SS->FindTx(OperationId); - Y_VERIFY(txState); - - TPathId pathId = txState->TargetPathId; - Y_VERIFY(context.SS->PathsById.contains(pathId)); - TPathElement::TPtr path = context.SS->PathsById.at(pathId); - Y_VERIFY(path); - - if (path->Dropped()) { - for (auto shard : txState->Shards) { - context.OnComplete.DeleteShard(shard.Idx); - } - } - - context.OnComplete.DoneOperation(OperationId); + AbortUnsafeDropOperation(OperationId, forceDropTxId, context); } }; diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_drop_pq.cpp b/ydb/core/tx/schemeshard/schemeshard__operation_drop_pq.cpp index e9fc5ee99a2..42cbaa77cf7 100644 --- a/ydb/core/tx/schemeshard/schemeshard__operation_drop_pq.cpp +++ b/ydb/core/tx/schemeshard/schemeshard__operation_drop_pq.cpp @@ -474,27 +474,7 @@ public: } void AbortUnsafe(TTxId forceDropTxId, TOperationContext& context) override { - LOG_NOTICE_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD, - "TDropPQ AbortUnsafe" - << ", opId: " << OperationId - << ", forceDropId: " << forceDropTxId - << ", at schemeshard: " << context.SS->TabletID()); - - TTxState* txState = context.SS->FindTx(OperationId); - Y_VERIFY(txState); - - TPathId pathId = txState->TargetPathId; - Y_VERIFY(context.SS->PathsById.contains(pathId)); - TPathElement::TPtr path = context.SS->PathsById.at(pathId); - Y_VERIFY(path); - - if (path->Dropped()) { - for (auto shard : txState->Shards) { - context.OnComplete.DeleteShard(shard.Idx); - } - } - - context.OnComplete.DoneOperation(OperationId); + AbortUnsafeDropOperation(OperationId, forceDropTxId, context); } }; diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_drop_replication.cpp b/ydb/core/tx/schemeshard/schemeshard__operation_drop_replication.cpp index 93431a6ba3e..aa085db4c3b 100644 --- a/ydb/core/tx/schemeshard/schemeshard__operation_drop_replication.cpp +++ b/ydb/core/tx/schemeshard/schemeshard__operation_drop_replication.cpp @@ -362,27 +362,8 @@ public: Y_FAIL("no AbortPropose for TDropReplication"); } - void AbortUnsafe(TTxId txId, TOperationContext& context) override { - LOG_N("TDropReplication AbortUnsafe" - << ": opId# " << OperationId - << ", txId# " << txId); - - TTxState* txState = context.SS->FindTx(OperationId); - - Y_VERIFY(txState); - const auto& pathId = txState->TargetPathId; - - Y_VERIFY(context.SS->PathsById.contains(pathId)); - auto path = context.SS->PathsById.at(pathId); - - Y_VERIFY(path); - if (path->Dropped()) { - for (auto shard : txState->Shards) { - context.OnComplete.DeleteShard(shard.Idx); - } - } - - context.OnComplete.DoneOperation(OperationId); + void AbortUnsafe(TTxId forceDropTxId, TOperationContext& context) override { + AbortUnsafeDropOperation(OperationId, forceDropTxId, context); } }; // TDropReplication diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_drop_solomon.cpp b/ydb/core/tx/schemeshard/schemeshard__operation_drop_solomon.cpp index 5ac355ad6d7..e5277373572 100644 --- a/ydb/core/tx/schemeshard/schemeshard__operation_drop_solomon.cpp +++ b/ydb/core/tx/schemeshard/schemeshard__operation_drop_solomon.cpp @@ -246,27 +246,7 @@ public: } void AbortUnsafe(TTxId forceDropTxId, TOperationContext& context) override { - LOG_NOTICE_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD, - "TDropSolomon AbortUnsafe" - << ", opId: " << OperationId - << ", forceDropId: " << forceDropTxId - << ", at schemeshard: " << context.SS->TabletID()); - - TTxState* txState = context.SS->FindTx(OperationId); - Y_VERIFY(txState); - - TPathId pathId = txState->TargetPathId; - Y_VERIFY(context.SS->PathsById.contains(pathId)); - TPathElement::TPtr path = context.SS->PathsById.at(pathId); - Y_VERIFY(path); - - if (path->Dropped()) { - for (auto shard : txState->Shards) { - context.OnComplete.DeleteShard(shard.Idx); - } - } - - context.OnComplete.DoneOperation(OperationId); + AbortUnsafeDropOperation(OperationId, forceDropTxId, context); } }; diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_drop_subdomain.cpp b/ydb/core/tx/schemeshard/schemeshard__operation_drop_subdomain.cpp index 8075648523e..5e6a9149129 100644 --- a/ydb/core/tx/schemeshard/schemeshard__operation_drop_subdomain.cpp +++ b/ydb/core/tx/schemeshard/schemeshard__operation_drop_subdomain.cpp @@ -239,28 +239,7 @@ public: } void AbortUnsafe(TTxId forceDropTxId, TOperationContext& context) override { - LOG_NOTICE_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD, - "TDropSubdomain AbortUnsafe" - << ", opId: " << OperationId - << ", forceDropId: " << forceDropTxId - << ", at schemeshard: " << context.SS->TabletID()); - - TTxState* txState = context.SS->FindTx(OperationId); - Y_VERIFY(txState); - - TPathId pathId = txState->TargetPathId; - Y_VERIFY(context.SS->PathsById.contains(pathId)); - - TPathElement::TPtr path = context.SS->PathsById.at(pathId); - Y_VERIFY(path); - - if (path->Dropped()) { - for (auto shard : txState->Shards) { - context.OnComplete.DeleteShard(shard.Idx); - } - } - - context.OnComplete.DoneOperation(OperationId); + AbortUnsafeDropOperation(OperationId, forceDropTxId, context); } }; diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_drop_table.cpp b/ydb/core/tx/schemeshard/schemeshard__operation_drop_table.cpp index bfe04ca0a0c..715203e8887 100644 --- a/ydb/core/tx/schemeshard/schemeshard__operation_drop_table.cpp +++ b/ydb/core/tx/schemeshard/schemeshard__operation_drop_table.cpp @@ -611,27 +611,7 @@ public: } void AbortUnsafe(TTxId forceDropTxId, TOperationContext& context) override { - LOG_NOTICE_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD, - "TDropTable AbortUnsafe" - << ", opId: " << OperationId - << ", forceDropId: " << forceDropTxId - << ", at schemeshard: " << context.SS->TabletID()); - - TTxState* txState = context.SS->FindTx(OperationId); - Y_VERIFY(txState); - - TPathId pathId = txState->TargetPathId; - Y_VERIFY(context.SS->PathsById.contains(pathId)); - TPathElement::TPtr path = context.SS->PathsById.at(pathId); - Y_VERIFY(path); - - if (path->Dropped()) { - for (auto shard : txState->Shards) { - context.OnComplete.DeleteShard(shard.Idx); - } - } - - context.OnComplete.DoneOperation(OperationId); + AbortUnsafeDropOperation(OperationId, forceDropTxId, context); } }; diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_drop_unsafe.cpp b/ydb/core/tx/schemeshard/schemeshard__operation_drop_unsafe.cpp index fee01f4cce2..8aba08a66e2 100644 --- a/ydb/core/tx/schemeshard/schemeshard__operation_drop_unsafe.cpp +++ b/ydb/core/tx/schemeshard/schemeshard__operation_drop_unsafe.cpp @@ -298,27 +298,7 @@ public: } void AbortUnsafe(TTxId forceDropTxId, TOperationContext& context) override { - LOG_NOTICE_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD, - "TDropForceUnsafe AbortUnsafe" - << ", opId: " << OperationId - << ", forceDropId: " << forceDropTxId - << ", at schemeshard: " << context.SS->TabletID()); - - TTxState* txState = context.SS->FindTx(OperationId); - Y_VERIFY(txState); - - TPathId pathId = txState->TargetPathId; - Y_VERIFY(context.SS->PathsById.contains(pathId)); - TPathElement::TPtr path = context.SS->PathsById.at(pathId); - Y_VERIFY(path); - - if (path->Dropped()) { - for (auto shard : txState->Shards) { - context.OnComplete.DeleteShard(shard.Idx); - } - } - - context.OnComplete.DoneOperation(OperationId); + AbortUnsafeDropOperation(OperationId, forceDropTxId, context); } }; |