Bad balance and excess part movement when reducing fractional replica count
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
In Progress
|
Medium
|
Cheng Li |
Bug Description
in swift/common/
the rebalance function calls self._set_
dev['parts_wanted'] = parts_by_tier[tier] - dev['parts']
so dev_losing_
should be followed with
dev_losing_
but in _adjust_
dev_losing_
You will meet this case if you reduce replicas and then rebalance
current case:
swift-ring-builder test.builder create 8 3.5 1
swift-ring-builder test.builder add r1z1-127.
swift-ring-builder test.builder add r1z1-127.
swift-ring-builder test.builder add r1z1-127.
swift-ring-builder test.builder add r1z1-127.
swift-ring-builder test.builder rebalance -s 1
Reassigned 512 (200.00%) partitions. Balance is now 0.00. Dispersion is now 0.00
swift-ring-builder test.builder set_replicas 3
swift-ring-builder test.builder pretend_
swift-ring-builder test.builder rebalance -s 1
Reassigned *128 (50.00%)* partitions. Balance is now 3.65. Dispersion is now 0.00
after this issue fixed:
swift-ring-builder test.builder create 8 3.5 1
swift-ring-builder test.builder add r1z1-127.
swift-ring-builder test.builder add r1z1-127.
swift-ring-builder test.builder add r1z1-127.
swift-ring-builder test.builder add r1z1-127.
swift-ring-builder test.builder rebalance -s 1
Reassigned 512 (200.00%) partitions. Balance is now 0.00. Dispersion is now 0.00
swift-ring-builder test.builder set_replicas 3
swift-ring-builder test.builder pretend_
swift-ring-builder test.builder rebalance -s 1
Reassigned *9 (3.52%)* partitions. Balance is now 0.00. Dispersion is now 0.00
Changed in swift: | |
assignee: | nobody → Cheng Li (shcli) |
Changed in swift: | |
status: | New → In Progress |
Changed in swift: | |
importance: | Undecided → Medium |
summary: |
- add dev_losing_part['parts_wanted'] += 1 + Bad balance and excess part movement when reducing fractional replica + count |
description: | updated |
description: | updated |
gerrit link: https:/ /review. openstack. org/#/c/ 344898/