aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorilnaz <ilnaz@ydb.tech>2023-03-14 16:08:02 +0300
committerilnaz <ilnaz@ydb.tech>2023-03-14 16:08:02 +0300
commit1c8debf9a4446f20e279e2309eeaba5938e5b044 (patch)
treef7d80272ead1528fbf851a4f9b1e7fb7d57960d7
parent53f9702804fc067d0338dd0d0e1bc8d05e40a426 (diff)
downloadydb-1c8debf9a4446f20e279e2309eeaba5938e5b044.tar.gz
Parametrize dst remover with target's kind
-rw-r--r--ydb/core/tx/replication/controller/dst_remover.cpp14
-rw-r--r--ydb/core/tx/replication/controller/dst_remover.h2
-rw-r--r--ydb/core/tx/replication/controller/target_base.cpp2
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: