pub struct ZoneConfig { /* private fields */ }Expand description
Zone configuration for CockroachDB
This struct represents zone configuration options for databases, tables, or indexes. Zone configurations control how CockroachDB distributes and replicates data across your cluster.
§Fields
num_replicas: Number of copies of data to maintain (default: 3)constraints: Placement rules for replicas (required/prohibited locations)lease_preferences: Preferences for which replicas serve reads
§Constraint Format
Constraints use a + (required) or - (prohibited) prefix:
+region=us-east-1: Replicas MUST be in us-east-1-region=us-west-1: Replicas MUST NOT be in us-west-1+zone=a: Replicas MUST be in zone ‘a’
§Lease Preferences Format
Lease preferences determine which replica serves reads. They use the same format as constraints but represent priorities rather than requirements.
§Examples
§Basic Configuration
use reinhardt_query::types::ZoneConfig;
let zone = ZoneConfig::new()
.num_replicas(3)
.add_constraint("+region=us-east-1")
.add_lease_preference("+region=us-east-1");§Multi-Region High Availability
use reinhardt_query::types::ZoneConfig;
// 5 replicas across 3 regions
let zone = ZoneConfig::new()
.num_replicas(5)
.add_constraint("+region=us-east-1")
.add_constraint("+region=us-west-1")
.add_constraint("+region=eu-west-1")
.add_lease_preference("+region=us-east-1"); // Prefer us-east-1 for reads§Exclude Specific Zones
use reinhardt_query::types::ZoneConfig;
// Avoid certain zones for compliance
let zone = ZoneConfig::new()
.num_replicas(3)
.add_constraint("+region=us-east-1")
.add_constraint("-zone=deprecated"); // Exclude deprecated zones§Tiered Read Preferences
use reinhardt_query::types::ZoneConfig;
// Primary: us-east-1, Secondary: us-west-1
let zone = ZoneConfig::new()
.num_replicas(3)
.add_lease_preference("+region=us-east-1")
.add_lease_preference("+region=us-west-1"); // Fallback if us-east-1 unavailableImplementations§
Source§impl ZoneConfig
impl ZoneConfig
Sourcepub fn num_replicas(self, replicas: i32) -> Self
pub fn num_replicas(self, replicas: i32) -> Self
Set the number of replicas
§Examples
use reinhardt_query::types::ZoneConfig;
let zone = ZoneConfig::new().num_replicas(3);Sourcepub fn add_constraint<S: Into<String>>(self, constraint: S) -> Self
pub fn add_constraint<S: Into<String>>(self, constraint: S) -> Self
Add a constraint
§Examples
use reinhardt_query::types::ZoneConfig;
let zone = ZoneConfig::new()
.add_constraint("+region=us-east-1")
.add_constraint("+zone=a");Sourcepub fn add_lease_preference<S: Into<String>>(self, preference: S) -> Self
pub fn add_lease_preference<S: Into<String>>(self, preference: S) -> Self
Add a lease preference
§Examples
use reinhardt_query::types::ZoneConfig;
let zone = ZoneConfig::new()
.add_lease_preference("+region=us-east-1");Trait Implementations§
Source§impl Clone for ZoneConfig
impl Clone for ZoneConfig
Source§fn clone(&self) -> ZoneConfig
fn clone(&self) -> ZoneConfig
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ZoneConfig
impl Debug for ZoneConfig
Source§impl Default for ZoneConfig
impl Default for ZoneConfig
Source§fn default() -> ZoneConfig
fn default() -> ZoneConfig
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for ZoneConfig
impl RefUnwindSafe for ZoneConfig
impl Send for ZoneConfig
impl Sync for ZoneConfig
impl Unpin for ZoneConfig
impl UnsafeUnpin for ZoneConfig
impl UnwindSafe for ZoneConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more