[ https://issues.apache.org/jira/browse/HDFS-767?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12790477#action_12790477 ]
Ning Zhang commented on HDFS-767: --------------------------------- Thanks for the comments Steve and Todd. I checked the JDK source code (1.6.0_16) and Random() uses a very simple default seed: /** * Creates a new random number generator. This constructor sets * the seed of the random number generator to a value very likely * to be distinct from any other invocation of this constructor. */ public Random() { this(++seedUniquifier + System.nanoTime()); } private static volatile long seedUniquifier = 8682522807148012L; Based on the discussion in Sun's forum: http://forums.sun.com/thread.jspa?threadID=5398150 , nanoTime is a native method and is implemented based on the CPU clock cycles. So I guess the chance of getting the same value from nanoTime is not that high even though all machines boot up at the same time. I agree that adding the machine's MAC address would greatly reduce the conflict probability, I am also fine to make that change in the next version. The change would be fairly simple since JDK1.6 has support get the MAC address. > 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 > Assignee: Ning Zhang > Attachments: HDFS-767.patch > > > 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.