Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
In the current implementation, the DFSClient retries the same datanode a few times (for reading) before marking the datanode as "dead" and moving on to trying the read-request from the next replica. This introduces additional delay when the first candidate datanode was really out-of-service. Instead, it might be beneficial (for performance) to make the DFSClient retry all datanode replicas one after another (while keeping the total number of retries per datanode the same as now); if all the replicas were tried unsuccessfully once, then loop back to retrying the first one and so on.