2013-12-18 11:37:14 |
Nikolay Markov |
description |
After late fixes complexity and time spent on ring rebalancing was seriously increased with calling sorted() on each iteration through tiers depths
Ordered by: cumulative time
ncalls tottime percall cumtime percall filename:lineno(function)
3145728 10.013 0.000 13.212 0.000 {sorted}
786432 4.811 0.000 8.633 0.000 /usr/lib/python2.7/dist-packages/swift/common/ring/builder.py:906(_sort_key_for)
12582912 6.418 0.000 6.418 0.000 {_bisect.bisect_left}
12582912 4.933 0.000 4.933 0.000 {method 'pop' of 'list' objects}
12582912 4.748 0.000 4.748 0.000 {method 'insert' of 'list' objects}
...
This bug is easily reproduced on Ubuntu + Python 2.7 |
On Ubuntu + Python 2.7 swift rebalance takes up to 8 minutes to complete, instead of 1-2.
/bin/sh -c swift-ring-builder /etc/swift/container.builder rebalance
Looking through recent changes, I found that complexity and time spent on ring rebalancing was seriously increased with calling sorted() on each iteration through tiers depths:
Ordered by: cumulative time
ncalls tottime percall cumtime percall filename:lineno(function)
3145728 10.013 0.000 13.212 0.000 {sorted}
786432 4.811 0.000 8.633 0.000 /usr/lib/python2.7/dist-packages/swift/common/ring/builder.py:906(_sort_key_for)
12582912 6.418 0.000 6.418 0.000 {_bisect.bisect_left}
12582912 4.933 0.000 4.933 0.000 {method 'pop' of 'list' objects}
12582912 4.748 0.000 4.748 0.000 {method 'insert' of 'list' objects}
... |
|
2013-12-18 11:40:06 |
Nikolay Markov |
description |
On Ubuntu + Python 2.7 swift rebalance takes up to 8 minutes to complete, instead of 1-2.
/bin/sh -c swift-ring-builder /etc/swift/container.builder rebalance
Looking through recent changes, I found that complexity and time spent on ring rebalancing was seriously increased with calling sorted() on each iteration through tiers depths:
Ordered by: cumulative time
ncalls tottime percall cumtime percall filename:lineno(function)
3145728 10.013 0.000 13.212 0.000 {sorted}
786432 4.811 0.000 8.633 0.000 /usr/lib/python2.7/dist-packages/swift/common/ring/builder.py:906(_sort_key_for)
12582912 6.418 0.000 6.418 0.000 {_bisect.bisect_left}
12582912 4.933 0.000 4.933 0.000 {method 'pop' of 'list' objects}
12582912 4.748 0.000 4.748 0.000 {method 'insert' of 'list' objects}
... |
On Ubuntu + Python 2.7 swift rebalance takes up to 8 minutes to complete, instead of 1-2.
/bin/sh -c swift-ring-builder /etc/swift/container.builder rebalance
Looking through recent changes, I found that complexity and time spent on ring rebalancing was seriously increased with calling sorted() on each iteration through tiers depths |
|