opensource4you / astraea

釋放kafka的無限潛能
Apache License 2.0
125 stars 45 forks source link

[BALANCER] Fix `ShuffleTweaker` logic error that cause multiple replicas at one broker #1770

Closed garyparrot closed 1 year ago

garyparrot commented 1 year ago

這個 PR 修正 #1656 帶來的錯誤,該 PR 的修正讓 ShuffleTweaker 的操作粒度從一個 partition 一次,變成一個 replica 一次,其 replica list alteration 的實作有一段程式碼會基於 stale state 做搬移決策:

https://github.com/skiptests/astraea/blob/28ec2c6882c2fad0fffc7367d16e458dbd2e091c/common/src/main/java/org/astraea/common/balancer/tweakers/ShuffleTweaker.java#L134

這始得 ShuffleTweaker 有機會產生出不正常的 replica list,如把兩個同個 partition 的 replica,放到同個節點上。

garyparrot commented 1 year ago

Flaky test #1771

chia7712 commented 1 year ago

麻煩修正衝突喔