summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgryzlov-ad <[email protected]>2025-04-09 13:24:00 +0300
committergryzlov-ad <[email protected]>2025-04-09 13:47:51 +0300
commit2da977708b0f780fd122dd337aedefbad66ad289 (patch)
tree97e34f059d5664371640404ea7fa8f3210cadd02
parent3109c7a26f89a904f6a52d24f48072afd8c7ba19 (diff)
YT-23505: Introduce chaos lease
commit_hash:4c47b7b75ace18f0f57347b25b062bf0d414e7d9
-rw-r--r--yt/yt/client/chaos_client/helpers.cpp9
-rw-r--r--yt/yt/client/chaos_client/public.h5
-rw-r--r--yt/yt/client/object_client/helpers.cpp10
-rw-r--r--yt/yt/client/object_client/helpers.h6
-rw-r--r--yt/yt/client/object_client/public.h1
-rw-r--r--yt/yt_proto/yt/client/chaos_client/proto/chaos_lease.proto10
-rw-r--r--yt/yt_proto/yt/client/ya.make1
7 files changed, 41 insertions, 1 deletions
diff --git a/yt/yt/client/chaos_client/helpers.cpp b/yt/yt/client/chaos_client/helpers.cpp
index 8f7a289c348..7ec2f3284d7 100644
--- a/yt/yt/client/chaos_client/helpers.cpp
+++ b/yt/yt/client/chaos_client/helpers.cpp
@@ -21,6 +21,15 @@ TReplicationCardId MakeReplicationCardId(TObjectId randomId)
EntropyFromId(randomId) & 0xffff0000);
}
+TReplicationCardId MakeChaosLeaseId(TObjectId randomId)
+{
+ return MakeId(
+ EObjectType::ChaosLease,
+ CellTagFromId(randomId),
+ CounterFromId(randomId),
+ EntropyFromId(randomId) & 0xffff0000);
+}
+
TReplicaId MakeReplicaId(TReplicationCardId replicationCardId, TReplicaIdIndex index)
{
return MakeId(
diff --git a/yt/yt/client/chaos_client/public.h b/yt/yt/client/chaos_client/public.h
index 4f1eb1c50ae..5c50d3a806e 100644
--- a/yt/yt/client/chaos_client/public.h
+++ b/yt/yt/client/chaos_client/public.h
@@ -11,7 +11,10 @@ namespace NYT::NChaosClient {
////////////////////////////////////////////////////////////////////////////////
using TReplicationCardId = NObjectClient::TObjectId;
-using TReplicationCardCollocationId = NObjectClient::TObjectId;
+using TChaosObjectId = NObjectClient::TObjectId;
+// using TReplicationCardId = TChaosObjectId;
+using TReplicationCardCollocationId = TChaosObjectId;
+using TChaosLeaseId = TChaosObjectId;
using TReplicaId = NObjectClient::TObjectId;
using TReplicationEra = ui64;
using TReplicaIdIndex = ui16;
diff --git a/yt/yt/client/object_client/helpers.cpp b/yt/yt/client/object_client/helpers.cpp
index e7ba1b93ce1..db59fe02b08 100644
--- a/yt/yt/client/object_client/helpers.cpp
+++ b/yt/yt/client/object_client/helpers.cpp
@@ -256,6 +256,16 @@ bool IsChaosTableReplicaType(EObjectType type)
return type == EObjectType::ChaosTableReplica;
}
+bool IsReplicationCardType(EObjectType type)
+{
+ return type == EObjectType::ReplicationCard;
+}
+
+bool IsChaosLeaseType(EObjectType type)
+{
+ return type == EObjectType::ChaosLease;
+}
+
bool IsCollocationType(EObjectType type)
{
return
diff --git a/yt/yt/client/object_client/helpers.h b/yt/yt/client/object_client/helpers.h
index ac2f24714c1..64fd9b2445c 100644
--- a/yt/yt/client/object_client/helpers.h
+++ b/yt/yt/client/object_client/helpers.h
@@ -67,6 +67,12 @@ bool IsTableReplicaType(EObjectType type);
//! Checks if the given type is a chaos replica.
bool IsChaosTableReplicaType(EObjectType type);
+//! Checks if the given type is a replication card.
+bool IsReplicationCardType(EObjectType type);
+
+//! Checks if the given type is a chaos lease.
+bool IsChaosLeaseType(EObjectType type);
+
//! Checks if the given type is a collocation.
bool IsCollocationType(EObjectType type);
diff --git a/yt/yt/client/object_client/public.h b/yt/yt/client/object_client/public.h
index 37a83b1b207..e037ce3f74a 100644
--- a/yt/yt/client/object_client/public.h
+++ b/yt/yt/client/object_client/public.h
@@ -342,6 +342,7 @@ DEFINE_ENUM(EObjectType,
((ChaosReplicatedTable) (1206))
((ReplicationCardCollocation) (1207))
((VirtualChaosCellMap) (1208))
+ ((ChaosLease) (1209))
// Other cluster components stuff
((ClusterProxyNode) (1500))
diff --git a/yt/yt_proto/yt/client/chaos_client/proto/chaos_lease.proto b/yt/yt_proto/yt/client/chaos_client/proto/chaos_lease.proto
new file mode 100644
index 00000000000..970c8e7447b
--- /dev/null
+++ b/yt/yt_proto/yt/client/chaos_client/proto/chaos_lease.proto
@@ -0,0 +1,10 @@
+package NYT.NChaosClient.NProto;
+
+import "yt_proto/yt/core/misc/proto/guid.proto";
+
+////////////////////////////////////////////////////////////////////////////////
+
+message TChaosLease
+{ }
+
+////////////////////////////////////////////////////////////////////////////////
diff --git a/yt/yt_proto/yt/client/ya.make b/yt/yt_proto/yt/client/ya.make
index dbf44fcbc89..e799449115f 100644
--- a/yt/yt_proto/yt/client/ya.make
+++ b/yt/yt_proto/yt/client/ya.make
@@ -19,6 +19,7 @@ SRCS(
cell_master/proto/cell_directory.proto
chaos_client/proto/replication_card.proto
+ chaos_client/proto/chaos_lease.proto
chunk_client/proto/data_statistics.proto
chunk_client/proto/chunk_meta.proto