diff --git a/src/instance.rs b/src/instance.rs index ceebcc1d941e88522ca4d9d8a33288f9a5098edd..1af21f476c45ca041fd4dd5815c23b5433b1eefd 100644 --- a/src/instance.rs +++ b/src/instance.rs @@ -55,6 +55,7 @@ pub struct Instance { impl Encode for Instance {} impl Instance { + /// Constructs new `Instance` as part of the instance joining process. pub fn new( instance_id: Option<&InstanceId>, replicaset_id: Option<&ReplicasetId>, @@ -96,7 +97,7 @@ impl Instance { Ok(instance) } - /// Create first instance in the cluster + /// Create first instance in the cluster. pub fn initial( instance_id: Option<InstanceId>, replicaset_id: Option<ReplicasetId>, @@ -118,6 +119,7 @@ impl Instance { } } + /// Updates existing [`Instance`]. Returns an updated instance. pub fn update( &self, req: &rpc::update_instance::Request, @@ -178,6 +180,7 @@ impl Instance { } } +/// Choose [`InstanceId`] based on `raft_id`. fn choose_instance_id(raft_id: RaftId, storage: &Clusterwide) -> InstanceId { let mut suffix: Option<u64> = None; loop { @@ -199,6 +202,7 @@ fn choose_instance_id(raft_id: RaftId, storage: &Clusterwide) -> InstanceId { } } +/// Choose a [`ReplicasetId`] for a new instance given its `failure_domain`. fn choose_replicaset_id(failure_domain: &FailureDomain, storage: &Clusterwide) -> ReplicasetId { 'next_replicaset: for (replicaset_id, instances) in storage.cache().replicasets.iter() { let replication_factor = storage @@ -227,6 +231,7 @@ fn choose_replicaset_id(failure_domain: &FailureDomain, storage: &Clusterwide) - } } +/// Check that `fd` contains all `required_domains`. pub fn check_required_failure_domain( fd: &FailureDomain, required_domains: &HashSet<Uppercase>, @@ -246,6 +251,7 @@ pub fn check_required_failure_domain( Err(format!("missing failure domain names: {}", res.join(", "))) } +/// Get ids of instances that are part of a replicaset with `replicaset_id`. pub fn replication_ids(replicaset_id: &ReplicasetId, storage: &Clusterwide) -> HashSet<RaftId> { if let Some(replication_ids) = storage.cache().replicasets.get(replicaset_id) { replication_ids