Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Duplicate
-
2.0.2-alpha, 3.0.0-alpha1
-
None
-
None
Description
When many nodes (10) read from the same block simultaneously, we get asymmetric distribution of read load. This can result in slow block reads when one replica is serving most of the readers and the other replicas are idle. The busy DN bottlenecks on its network link.
This is especially visible with large block sizes and high replica counts (I reproduced the problem with -Ddfs.block.size=4294967296 and replication 5), but the same behavior happens on a small scale with normal-sized blocks and replication=3.
The root of the problem is in NetworkTopology#pseudoSortByDistance which explicitly does not try to spread traffic among replicas in a given rack – it only randomizes usage for off-rack replicas.