Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
Hedged point read is handled in DFSInputStream.hedgedFetchBlockByteRange(). It calls "getFirstToComplete()" to get the 1st returned result after sending out hedge read requests. But since "getFirstToComplete()" uses "CompletionService.take()" which is a endlessly blocking operation. It will wait for 1 result after sending only 1 hedge read request.
It could be changed to wait for a specific timeout (instead of infinite timeout) and starting another hedge read request.