diff options
author | ilnaz <ilnaz@ydb.tech> | 2023-03-14 16:08:02 +0300 |
---|---|---|
committer | ilnaz <ilnaz@ydb.tech> | 2023-03-14 16:08:02 +0300 |
commit | 1c8debf9a4446f20e279e2309eeaba5938e5b044 (patch) | |
tree | f7d80272ead1528fbf851a4f9b1e7fb7d57960d7 | |
parent | 53f9702804fc067d0338dd0d0e1bc8d05e40a426 (diff) | |
download | ydb-1c8debf9a4446f20e279e2309eeaba5938e5b044.tar.gz |
Parametrize dst remover with target's kind
-rw-r--r-- | ydb/core/tx/replication/controller/dst_remover.cpp | 14 | ||||
-rw-r--r-- | ydb/core/tx/replication/controller/dst_remover.h | 2 | ||||
-rw-r--r-- | ydb/core/tx/replication/controller/target_base.cpp | 2 |
3 files changed, 13 insertions, 5 deletions
diff --git a/ydb/core/tx/replication/controller/dst_remover.cpp b/ydb/core/tx/replication/controller/dst_remover.cpp index 0d4bf9d5eb2..6b96635f540 100644 --- a/ydb/core/tx/replication/controller/dst_remover.cpp +++ b/ydb/core/tx/replication/controller/dst_remover.cpp @@ -38,9 +38,14 @@ class TDstRemover: public TActorBootstrapped<TDstRemover> { void DropDst() { auto ev = MakeHolder<TEvSchemeShard::TEvModifySchemeTransaction>(TxId, SchemeShardId); auto& tx = *ev->Record.AddTransaction(); - tx.SetOperationType(NKikimrSchemeOp::ESchemeOpDropTable); tx.MutableDrop()->SetId(DstPathId.LocalPathId); + switch (Kind) { + case TReplication::ETargetKind::Table: + tx.SetOperationType(NKikimrSchemeOp::ESchemeOpDropTable); + break; + } + Send(PipeCache, new TEvPipeCache::TEvForward(ev.Release(), SchemeShardId, true)); Become(&TThis::StateDropDst); } @@ -135,12 +140,14 @@ public: const TActorId& proxy, ui64 rid, ui64 tid, + TReplication::ETargetKind kind, const TPathId& dstPathId) : Parent(parent) , SchemeShardId(schemeShardId) , YdbProxy(proxy) , ReplicationId(rid) , TargetId(tid) + , Kind(kind) , DstPathId(dstPathId) , LogPrefix("DstRemover", ReplicationId, TargetId) { @@ -168,6 +175,7 @@ private: const TActorId YdbProxy; const ui64 ReplicationId; const ui64 TargetId; + const TReplication::ETargetKind Kind; const TPathId DstPathId; const TActorLogPrefix LogPrefix; @@ -177,9 +185,9 @@ private: }; // TDstRemover IActor* CreateDstRemover(const TActorId& parent, ui64 schemeShardId, const TActorId& proxy, - ui64 rid, ui64 tid, const TPathId& dstPathId) + ui64 rid, ui64 tid, TReplication::ETargetKind kind, const TPathId& dstPathId) { - return new TDstRemover(parent, schemeShardId, proxy, rid, tid, dstPathId); + return new TDstRemover(parent, schemeShardId, proxy, rid, tid, kind, dstPathId); } } diff --git a/ydb/core/tx/replication/controller/dst_remover.h b/ydb/core/tx/replication/controller/dst_remover.h index 687c3607242..dcc372c6584 100644 --- a/ydb/core/tx/replication/controller/dst_remover.h +++ b/ydb/core/tx/replication/controller/dst_remover.h @@ -7,6 +7,6 @@ namespace NKikimr::NReplication::NController { IActor* CreateDstRemover(const TActorId& parent, ui64 schemeShardId, const TActorId& proxy, - ui64 rid, ui64 tid, const TPathId& dstPathId); + ui64 rid, ui64 tid, TReplication::ETargetKind kind, const TPathId& dstPathId); } diff --git a/ydb/core/tx/replication/controller/target_base.cpp b/ydb/core/tx/replication/controller/target_base.cpp index 0e942fc5c94..e59cdf9cb08 100644 --- a/ydb/core/tx/replication/controller/target_base.cpp +++ b/ydb/core/tx/replication/controller/target_base.cpp @@ -96,7 +96,7 @@ void TTargetBase::Progress(ui64 schemeShardId, const TActorId& proxy, const TAct case EDstState::Removing: if (!DstRemover) { DstRemover = ctx.Register(CreateDstRemover(ctx.SelfID, schemeShardId, proxy, - ReplicationId, TargetId, DstPathId)); + ReplicationId, TargetId, Kind, DstPathId)); } break; case EDstState::Error: |