diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/impl/KeyValueStreamDataChannel.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/impl/KeyValueStreamDataChannel.java index 185ad9c001b..7a08c7ef4e8 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/impl/KeyValueStreamDataChannel.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/impl/KeyValueStreamDataChannel.java @@ -27,7 +27,6 @@ import org.apache.hadoop.hdds.scm.storage.BlockDataStreamOutput; import org.apache.hadoop.ozone.container.common.helpers.ContainerMetrics; import org.apache.hadoop.ozone.container.common.impl.ContainerData; -import org.apache.hadoop.util.Time; import org.apache.ratis.thirdparty.com.google.protobuf.ByteString; import org.apache.ratis.thirdparty.io.netty.buffer.ByteBuf; import org.apache.ratis.thirdparty.io.netty.buffer.Unpooled; @@ -167,11 +166,7 @@ public int write(ReferenceCountedObject referenceCounted) getMetrics().incContainerOpsMetrics(getType()); assertOpen(); - final long l = Time.monotonicNow(); - int len = writeBuffers(referenceCounted, buffers, super::writeFileChannel); - getMetrics() - .incContainerOpsLatencies(getType(), Time.monotonicNow() - l); - return len; + return writeBuffers(referenceCounted, buffers, this::writeFileChannel); } static int writeBuffers(ReferenceCountedObject src, diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/impl/StreamDataChannelBase.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/impl/StreamDataChannelBase.java index 810495b2a74..a88f452167e 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/impl/StreamDataChannelBase.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/impl/StreamDataChannelBase.java @@ -22,6 +22,7 @@ import org.apache.hadoop.hdds.scm.container.common.helpers.StorageContainerException; import org.apache.hadoop.ozone.container.common.helpers.ContainerMetrics; import org.apache.hadoop.ozone.container.common.impl.ContainerData; +import org.apache.hadoop.util.Time; import org.apache.ratis.statemachine.StateMachine; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -129,9 +130,11 @@ public void close() throws IOException { final int writeFileChannel(ByteBuffer src) throws IOException { try { + final long startTime = Time.monotonicNow(); final int writeBytes = getChannel().write(src); metrics.incContainerBytesStats(getType(), writeBytes); containerData.updateWriteStats(writeBytes, false); + metrics.incContainerOpsLatencies(getType(), Time.monotonicNow() - startTime); return writeBytes; } catch (IOException e) { checkVolume();