Skip to main content

Module shuffle

Module shuffle 

Source
Expand description

Cross-instance shuffle: message codec, credit flow, wire protocol. Cross-instance shuffle over Tonic gRPC client-streaming: one client-streaming call per peer pair carrying ShuffleMessage frames. Backpressure is the HTTP/2 flow-control window plus the bounded crossfire inbound queue on the consuming side. The real transport is compiled under cluster; the default build keeps a networking-free shim.

Re-exports§

pub use barrier_tracker::BarrierTracker;
pub use message::ShuffleMessage;
pub use routing::row_vnodes;
pub use routing::slice_batch_by_targets;
pub use routing::slice_batch_by_vnode;
pub use routing::slice_batch_by_vnodes;
pub use transport::SHUFFLE_ADDR_KEY;
pub use transport::ShufflePeerId;
pub use transport::ShuffleReceiver;
pub use transport::ShuffleSender;

Modules§

barrier_tracker
Chandy–Lamport barrier alignment. One BarrierTracker per sharded operator; observe(input, barrier) returns Some once every input has seen the same checkpoint id.
message
Logical messages carried on a shuffle stream.
routing
Row→vnode routing shared by the cluster shuffle paths (the aggregate row-shuffle, the lookup-enrich key-shuffle, and ClusterRepartitionExec). Hashing matches crate::state::VnodeRegistry::vnode_for_key so every stage agrees on a key’s vnode.
transport
Cross-node shuffle transport over Tonic gRPC client-streaming.