Currently it sorts the block locations as: # local node # local rack node # random order of remote nodes
See DatanodeManager#sortLocatedBlock(...) and NetworkTopology#pseudoSortByDistance(...). You can play around with other policies by plugging in different NetworkTopology. On Thu, Jan 5, 2012 at 1:40 PM, Ben Clay <rbc...@ncsu.edu> wrote: > Hi-**** > > ** ** > > How does the NameNode handle load balancing of non-local reads with > multiple block locations when locality is equal?**** > > ** ** > > IE, if the client is equidistant (same rack) from 2 DataNodes hosting the > same block, does the NameNode consider current client count or any other > load indicators when deciding which DataNode will satisfy the read > request? Or, is the client provided a list of all split locations and is > allowed to make this choice themselves?**** > > ** ** > > Thanks!**** > > ** ** > > -Ben**** > > ** ** >