BELUGA BEHR created HDFS-13994: ---------------------------------- Summary: DataNode BlockSender waitForMinLength Key: HDFS-13994 URL: https://issues.apache.org/jira/browse/HDFS-13994 Project: Hadoop HDFS Issue Type: Improvement Components: datanode Affects Versions: 3.2.0 Reporter: BELUGA BEHR Attachments: HDFS-13994.1.patch
{code:java|title=BlockSender.java} private static void waitForMinLength(ReplicaInPipeline rbw, long len) throws IOException { // Wait for 3 seconds for rbw replica to reach the minimum length for (int i = 0; i < 30 && rbw.getBytesOnDisk() < len; i++) { try { Thread.sleep(100); } catch (InterruptedException ie) { throw new IOException(ie); } } long bytesOnDisk = rbw.getBytesOnDisk(); if (bytesOnDisk < len) { throw new IOException( String.format("Need %d bytes, but only %d bytes available", len, bytesOnDisk)); } } {code} It is not very efficient to poll for status in this way. Instead, use {{notifyAll}} within the {{ReplicaInPipeline}} to notify the caller when the replica has reached a certain size. -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-dev-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org