pub enum PartitionStrategy {
CollectionHomed,
KeyPartitioned {
key: KeySpec,
},
}Expand description
How a collection’s rows are distributed across vShards.
This is the authoritative per-collection partition metadata. Future routing, Calvin, and resharding layers read this field instead of inferring distribution from engine type.
Variants§
CollectionHomed
All rows live on one owning vShard derived from (db_id, collection).
Every base collection is collection-homed today: Document (schemaless and strict), Columnar (plain, timeseries, spatial), and Key-Value all route to a single vShard that owns the collection. Graph edge-key partitioning and Array tile partitioning are operation-level concerns handled separately and are NOT reflected here at create time.
KeyPartitioned
Rows routed by hashing a key field. Reserved for future key-partitioned collections; not populated at create time in this release.
Implementations§
Source§impl PartitionStrategy
impl PartitionStrategy
Sourcepub fn default_for_collection_type(ct: &CollectionType) -> Self
pub fn default_for_collection_type(ct: &CollectionType) -> Self
Derive the create-time default strategy from a CollectionType.
Every base engine is collection-homed today:
Document(schemaless and strict): single-vShard B-tree ownership.Columnar(plain, timeseries, spatial): single-vShard segment ownership; timeseries append partitioning is a write-path concern, not a metadata-level partition strategy.KeyValue: single-vShard hash-index ownership; per-key routing is internal to the engine, not exposed at the collection layer.
Graph edge-key and Array tile partitioning are operation-level and are handled separately — they are NOT set here at collection create time.
Trait Implementations§
Source§impl Clone for PartitionStrategy
impl Clone for PartitionStrategy
Source§fn clone(&self) -> PartitionStrategy
fn clone(&self) -> PartitionStrategy
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PartitionStrategy
impl Debug for PartitionStrategy
Source§impl Default for PartitionStrategy
impl Default for PartitionStrategy
Source§fn default() -> PartitionStrategy
fn default() -> PartitionStrategy
Source§impl<'de> Deserialize<'de> for PartitionStrategy
impl<'de> Deserialize<'de> for PartitionStrategy
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for PartitionStrategy
Source§impl<'__msgpack_de> FromMessagePack<'__msgpack_de> for PartitionStrategy
impl<'__msgpack_de> FromMessagePack<'__msgpack_de> for PartitionStrategy
Source§impl PartialEq for PartitionStrategy
impl PartialEq for PartitionStrategy
Source§impl Serialize for PartitionStrategy
impl Serialize for PartitionStrategy
impl StructuralPartialEq for PartitionStrategy
Auto Trait Implementations§
impl Freeze for PartitionStrategy
impl RefUnwindSafe for PartitionStrategy
impl Send for PartitionStrategy
impl Sync for PartitionStrategy
impl Unpin for PartitionStrategy
impl UnsafeUnpin for PartitionStrategy
impl UnwindSafe for PartitionStrategy
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
impl<T> FromMessagePackOwned for Twhere
T: for<'a> FromMessagePack<'a>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
impl<T> Scalar for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.