hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Todd Lipcon (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HDFS-767) Job failure due to BlockMissingException
Date Fri, 13 Nov 2009 02:34:39 GMT

    [ https://issues.apache.org/jira/browse/HDFS-767?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12777345#action_12777345
] 

Todd Lipcon commented on HDFS-767:
----------------------------------

I see why the idea of slot time doesn't apply, but still unsure about the 3000*failures without
randomization term. It seems like this time delta is to ensure that all "round two attempts"
come after all "round one" attempts, but in that case the delta would be since the first request,
not since the most recent request, right? Do we not really want to do something like:

{code}
start_time = now()
while failing and failures < N:
  attempt to read
  if failed:
    next_read = start_time + failures * 3000 + 3000*(failures + 1)*rand(0,1)
    sleep(next_read - now())
{code}

If I'm understanding this correctly, this produces all 1st retries between interval 0..3,
all round 2 between 3..9, all round 3 between 9..15. Is that what we're attempting to do?

> Job failure due to BlockMissingException
> ----------------------------------------
>
>                 Key: HDFS-767
>                 URL: https://issues.apache.org/jira/browse/HDFS-767
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>            Reporter: Ning Zhang
>
> If a block is request by too many mappers/reducers (say, 3000) at the same time, a BlockMissingException
is thrown because it exceeds the upper limit (I think 256 by default) of number of threads
accessing the same block at the same time. The DFSClient wil catch that exception and retry
3 times after waiting for 3 seconds. Since the wait time is a fixed value, a lot of clients
will retry at about the same time and a large portion of them get another failure. After 3
retries, there are about 256*4 = 1024 clients got the block. If the number of clients are
more than that, the job will fail. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message