Thanks for joining this discussion
> 1. where is the partition to bundle mapping stored?
We don't need to store the mapping relationship, it can be calculated
dynamically. The first is the starting bundle, partition-0 is calculated
directly through consistent hashing. Subsequent partitions are assigned to
subsequent bundles by round robin
> 2. when upgrade origin logic to the new round robin logic. how the current
> code distinguish partition assigned by origin logic and the new created topic
> assign by round robin logic.
This is an incompatible modification, so the entire cluster needs to be
upgraded, not just a part of the nodes
> 2. can you explain how the re-assignment works (when bundle number change).
> which component will trigger and do the work ?
When a bundle-split occurs, the bundle unload at the namespace level will be
triggered. In this namespace, the binding relationship between all partitions
and the bundle will be re-determined. The re-determined steps are as stated in
the issue:
1) partition-0 finds the starting bundle through consistent hashing
2) Subsequent partitions are assigned to subsequent bundles by round robin
> 3. If bundle-split is not expected. how many bundle should user set. and do
> we need disable bundle split we the round robin logic applied.
Now this way does not limit the use of bundle-split, but it will trigger the
rebinding of partitions under the entire namespace during bundle split, and
there will be a certain allocation time