You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-dev@hadoop.apache.org by "BELUGA BEHR (JIRA)" <ji...@apache.org> on 2018/10/15 17:38:00 UTC
[jira] [Created] (HDFS-13994) DataNode BlockSender waitForMinLength
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-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-dev-help@hadoop.apache.org