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
BarrierTrackerper sharded operator;observe(input, barrier)returnsSomeonce 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 matchescrate::state::VnodeRegistry::vnode_for_keyso every stage agrees on a key’s vnode. - transport
- Cross-node shuffle transport over Tonic gRPC client-streaming.