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: [email protected]
For additional commands, e-mail: [email protected]