pub struct DistributedRegionRecord {
pub id: RegionId,
pub state: DistributedRegionState,
pub config: DistributedRegionConfig,
pub replicas: Vec<ReplicaInfo>,
pub transitions: VecDeque<StateTransition>,
pub last_replicated: Option<Time>,
pub parent: Option<RegionId>,
pub budget: Budget,
}Expand description
Internal record for a distributed region.
Fields§
§id: RegionIdUnique identifier for this region.
state: DistributedRegionStateDistributed-specific state.
config: DistributedRegionConfigConfiguration for this region.
replicas: Vec<ReplicaInfo>Active replicas (by replica ID).
transitions: VecDeque<StateTransition>State transition history (bounded).
last_replicated: Option<Time>Last successful replication timestamp.
parent: Option<RegionId>Parent region (if nested).
budget: BudgetBudget allocated to this region.
Implementations§
Source§impl DistributedRegionRecord
impl DistributedRegionRecord
Sourcepub fn new(
id: RegionId,
config: DistributedRegionConfig,
parent: Option<RegionId>,
budget: Budget,
) -> Self
pub fn new( id: RegionId, config: DistributedRegionConfig, parent: Option<RegionId>, budget: Budget, ) -> Self
Creates a new distributed region in Initializing state.
Sourcepub fn activate(&mut self, now: Time) -> Result<StateTransition, Error>
pub fn activate(&mut self, now: Time) -> Result<StateTransition, Error>
Attempts to transition to Active state.
Returns error if quorum not reached or invalid transition.
Sourcepub fn replica_lost(
&mut self,
replica_id: &str,
now: Time,
) -> Result<StateTransition, Error>
pub fn replica_lost( &mut self, replica_id: &str, now: Time, ) -> Result<StateTransition, Error>
Marks a replica as lost and potentially degrades the region.
Sourcepub fn trigger_recovery(
&mut self,
initiator: &str,
now: Time,
) -> Result<StateTransition, Error>
pub fn trigger_recovery( &mut self, initiator: &str, now: Time, ) -> Result<StateTransition, Error>
Triggers recovery from degraded state.
Sourcepub fn complete_recovery(
&mut self,
symbols_used: u32,
now: Time,
) -> Result<StateTransition, Error>
pub fn complete_recovery( &mut self, symbols_used: u32, now: Time, ) -> Result<StateTransition, Error>
Marks recovery as complete. Returns to Active.
Sourcepub fn fail_recovery(
&mut self,
reason: String,
now: Time,
) -> Result<StateTransition, Error>
pub fn fail_recovery( &mut self, reason: String, now: Time, ) -> Result<StateTransition, Error>
Marks recovery as failed. Transitions to Closing.
Sourcepub fn begin_close(
&mut self,
reason: TransitionReason,
now: Time,
) -> Result<StateTransition, Error>
pub fn begin_close( &mut self, reason: TransitionReason, now: Time, ) -> Result<StateTransition, Error>
Begins the closing process.
Sourcepub fn complete_close(&mut self, now: Time) -> Result<StateTransition, Error>
pub fn complete_close(&mut self, now: Time) -> Result<StateTransition, Error>
Completes the close (terminal transition).
Sourcepub fn current_quorum(&self) -> u32
pub fn current_quorum(&self) -> u32
Returns the current quorum count (healthy replicas).
Sourcepub fn has_quorum(&self) -> bool
pub fn has_quorum(&self) -> bool
Returns true if quorum is maintained.
Sourcepub fn healthy_replicas(&self) -> u32
pub fn healthy_replicas(&self) -> u32
Returns healthy replica count.
Sourcepub fn add_replica(&mut self, info: ReplicaInfo) -> Result<(), Error>
pub fn add_replica(&mut self, info: ReplicaInfo) -> Result<(), Error>
Adds a replica to the region.
Sourcepub fn remove_replica(&mut self, replica_id: &str) -> Result<ReplicaInfo, Error>
pub fn remove_replica(&mut self, replica_id: &str) -> Result<ReplicaInfo, Error>
Removes a replica from the region.
Sourcepub fn update_replica_status(
&mut self,
replica_id: &str,
status: ReplicaStatus,
now: Time,
) -> Result<(), Error>
pub fn update_replica_status( &mut self, replica_id: &str, status: ReplicaStatus, now: Time, ) -> Result<(), Error>
Updates replica status based on heartbeat.