master: Use difference between racks to calculate distance #523
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently distance is calculated as 0 (same machine), 1 (same rack) and 2
(different racks). This doesn't allow any way of saying that rack 1 is
closer to rack 2 than it is to rack 42.
This patch changes the topology distance calculation by having different
racks represented by the difference between the racks + 1 (since a
distance of 1 means they're on the same rack).
Rack 2 now has a distance of 2 from rack 1 (abs(2-1)+1=2) and a distance
of 41 from rack 42 (abs(2-42)+1=41), which means clients on rack 2 will
prefer chunk servers on rack 1.
The implementation idea came from #269 (comment)
I've built and tested this patch on our local 3.10.6 cluster, and it functions as advertised.
Signed-off-by: Jonathan Dieter [email protected]