risingwave_meta::stream::source_manager::split_assignment

Function align_splits

source
fn align_splits(
    aligned_actors: impl IntoIterator<Item = (ActorId, ActorId)>,
    existing_assignment: &HashMap<ActorId, Vec<SplitImpl>>,
    fragment_id: FragmentId,
    upstream_source_fragment_id: FragmentId,
) -> Result<HashMap<ActorId, Vec<SplitImpl>>>
Expand description

Assign splits to a new set of actors, according to existing assignment.

illustration:

upstream                               new
actor x1 [split 1, split2]      ->     actor y1 [split 1, split2]
actor x2 [split 3]              ->     actor y2 [split 3]
...