pub struct PartitionedRouter { /* private fields */ }Expand description
Routes RecordBatch rows to cores based on key columns.
Uses FxHasher for fast, deterministic hashing. Same key always maps
to the same core, guaranteeing state locality.
Pre-allocates per-core row buffers and reuses them across calls to avoid per-cycle heap allocations on the hot path.
Implementations§
Source§impl PartitionedRouter
impl PartitionedRouter
Sourcepub fn route_batch(
&mut self,
batch: &RecordBatch,
) -> Result<Vec<(usize, RecordBatch)>, RouterError>
pub fn route_batch( &mut self, batch: &RecordBatch, ) -> Result<Vec<(usize, RecordBatch)>, RouterError>
Split a batch into per-core sub-batches.
Returns a vec of (core_id, RecordBatch) — one entry per core that
has rows. Cores with zero rows are omitted.
§Errors
Returns an error if key columns are not found or have unsupported types.
Auto Trait Implementations§
impl Freeze for PartitionedRouter
impl !RefUnwindSafe for PartitionedRouter
impl Send for PartitionedRouter
impl Sync for PartitionedRouter
impl Unpin for PartitionedRouter
impl UnsafeUnpin for PartitionedRouter
impl !UnwindSafe for PartitionedRouter
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.