This is an automated email from the ASF dual-hosted git repository.

sumitagrawal pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new db4b4367617 HDDS-13613. Remove calculatePipelineBytesWritten from DN 
code path. (#8978)
db4b4367617 is described below

commit db4b43676172ef03e73ad9a4e2ddf7e9490ac824
Author: Aswin Shakil Balasubramanian <aswin.shaki...@gmail.com>
AuthorDate: Wed Sep 10 23:24:25 2025 -0700

    HDDS-13613. Remove calculatePipelineBytesWritten from DN code path. (#8978)
---
 .../transport/server/ratis/XceiverServerRatis.java |  15 ---
 .../proto/ScmServerDatanodeHeartbeatProtocol.proto |   2 +-
 .../hdds/scm/pipeline/PipelineReportHandler.java   |   3 -
 .../hdds/scm/pipeline/SCMPipelineMetrics.java      |  27 -----
 .../TestOneReplicaPipelineSafeModeRule.java        |   1 -
 .../hdds/scm/safemode/TestSCMSafeModeManager.java  |   1 -
 .../TestSCMPipelineBytesWrittenMetrics.java        | 135 ---------------------
 7 files changed, 1 insertion(+), 183 deletions(-)

diff --git 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java
 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java
index eca17f46d71..6661823f9a1 100644
--- 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java
+++ 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java
@@ -77,8 +77,6 @@
 import org.apache.hadoop.ozone.HddsDatanodeService;
 import org.apache.hadoop.ozone.OzoneConfigKeys;
 import org.apache.hadoop.ozone.OzoneConsts;
-import org.apache.hadoop.ozone.container.common.impl.ContainerData;
-import org.apache.hadoop.ozone.container.common.interfaces.Container;
 import org.apache.hadoop.ozone.container.common.interfaces.ContainerDispatcher;
 import org.apache.hadoop.ozone.container.common.statemachine.StateContext;
 import 
org.apache.hadoop.ozone.container.common.transport.server.XceiverServerSpi;
@@ -778,18 +776,6 @@ public boolean isExist(HddsProtos.PipelineID pipelineId) {
         RaftGroupId.valueOf(PipelineID.getFromProtobuf(pipelineId).getId()));
   }
 
-  private long calculatePipelineBytesWritten(HddsProtos.PipelineID pipelineID) 
{
-    long bytesWritten = 0;
-    for (Container<?> container : containerController.getContainers()) {
-      ContainerData containerData = container.getContainerData();
-      if (containerData.getOriginPipelineId()
-          .compareTo(pipelineID.getId()) == 0) {
-        bytesWritten += containerData.getStatistics().getWriteBytes();
-      }
-    }
-    return bytesWritten;
-  }
-
   @Override
   public List<PipelineReport> getPipelineReport() {
     try {
@@ -803,7 +789,6 @@ public List<PipelineReport> getPipelineReport() {
         reports.add(PipelineReport.newBuilder()
             .setPipelineID(pipelineID)
             .setIsLeader(isLeader)
-            .setBytesWritten(calculatePipelineBytesWritten(pipelineID))
             .build());
       }
       return reports;
diff --git 
a/hadoop-hdds/interface-server/src/main/proto/ScmServerDatanodeHeartbeatProtocol.proto
 
b/hadoop-hdds/interface-server/src/main/proto/ScmServerDatanodeHeartbeatProtocol.proto
index f7608b28496..752a62bd339 100644
--- 
a/hadoop-hdds/interface-server/src/main/proto/ScmServerDatanodeHeartbeatProtocol.proto
+++ 
b/hadoop-hdds/interface-server/src/main/proto/ScmServerDatanodeHeartbeatProtocol.proto
@@ -269,7 +269,7 @@ message ContainerAction {
 message PipelineReport {
   required PipelineID pipelineID = 1;
   required bool isLeader = 2;
-  optional uint64 bytesWritten = 3;
+  optional uint64 bytesWritten = 3 [deprecated = true];
 }
 
 message PipelineReportsProto {
diff --git 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/pipeline/PipelineReportHandler.java
 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/pipeline/PipelineReportHandler.java
index 91c58c754c8..50fbc5e492b 100644
--- 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/pipeline/PipelineReportHandler.java
+++ 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/pipeline/PipelineReportHandler.java
@@ -51,7 +51,6 @@ public class PipelineReportHandler implements
   private final PipelineManager pipelineManager;
   private final SafeModeManager scmSafeModeManager;
   private final SCMContext scmContext;
-  private final SCMPipelineMetrics metrics;
 
   public PipelineReportHandler(SafeModeManager scmSafeModeManager,
                                PipelineManager pipelineManager,
@@ -61,7 +60,6 @@ public PipelineReportHandler(SafeModeManager 
scmSafeModeManager,
     this.scmSafeModeManager = scmSafeModeManager;
     this.pipelineManager = pipelineManager;
     this.scmContext = scmContext;
-    this.metrics = SCMPipelineMetrics.create();
   }
 
   @Override
@@ -154,7 +152,6 @@ protected void setPipelineLeaderId(PipelineReport report,
         RatisReplicationConfig.hasFactor(pipeline.getReplicationConfig(),
             ReplicationFactor.ONE)) {
       pipeline.setLeaderId(dn.getID());
-      metrics.incNumPipelineBytesWritten(pipeline, report.getBytesWritten());
     }
   }
 
diff --git 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/pipeline/SCMPipelineMetrics.java
 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/pipeline/SCMPipelineMetrics.java
index 65d781943b8..3ba1df1a806 100644
--- 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/pipeline/SCMPipelineMetrics.java
+++ 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/pipeline/SCMPipelineMetrics.java
@@ -58,13 +58,11 @@ public final class SCMPipelineMetrics implements 
MetricsSource {
   private @Metric MutableCounterLong numPipelineContainSameDatanodes;
   private @Metric MutableRate pipelineCreationLatencyNs;
   private final Map<PipelineID, MutableCounterLong> numBlocksAllocated;
-  private final Map<PipelineID, MutableCounterLong> numBytesWritten;
 
   /** Private constructor. */
   private SCMPipelineMetrics() {
     this.registry = new MetricsRegistry(SOURCE_NAME);
     numBlocksAllocated = new ConcurrentHashMap<>();
-    numBytesWritten = new ConcurrentHashMap<>();
   }
 
   /**
@@ -104,8 +102,6 @@ public void getMetrics(MetricsCollector collector, boolean 
all) {
     numPipelineReportProcessingFailed.snapshot(recordBuilder, true);
     numPipelineContainSameDatanodes.snapshot(recordBuilder, true);
     pipelineCreationLatencyNs.snapshot(recordBuilder, true);
-    numBytesWritten
-        .forEach((pid, metric) -> metric.snapshot(recordBuilder, true));
     numBlocksAllocated
         .forEach((pid, metric) -> metric.snapshot(recordBuilder, true));
   }
@@ -114,7 +110,6 @@ void createPerPipelineMetrics(Pipeline pipeline) {
     numBlocksAllocated.put(pipeline.getId(), new MutableCounterLong(Interns
         .info(getBlockAllocationMetricName(pipeline),
             "Number of blocks allocated in pipeline " + pipeline.getId()), 
0L));
-    numBytesWritten.put(pipeline.getId(), bytesWrittenCounter(pipeline, 0L));
   }
 
   public static String getBlockAllocationMetricName(Pipeline pipeline) {
@@ -122,14 +117,8 @@ public static String getBlockAllocationMetricName(Pipeline 
pipeline) {
         .getReplicationConfig().toString() + "-" + pipeline.getId().getId();
   }
 
-  public static String getBytesWrittenMetricName(Pipeline pipeline) {
-    return "NumPipelineBytesWritten-" + pipeline.getType() + "-" + pipeline
-        .getReplicationConfig().toString() + "-" + pipeline.getId().getId();
-  }
-
   void removePipelineMetrics(PipelineID pipelineID) {
     numBlocksAllocated.remove(pipelineID);
-    numBytesWritten.remove(pipelineID);
   }
 
   /**
@@ -155,22 +144,6 @@ void incNumPipelineCreated() {
     numPipelineCreated.incr();
   }
 
-  /**
-   * Increments the number of total bytes that write into the pipeline.
-   */
-  void incNumPipelineBytesWritten(Pipeline pipeline, long bytes) {
-    numBytesWritten.computeIfPresent(pipeline.getId(),
-        (k, v) -> bytesWrittenCounter(pipeline, bytes));
-  }
-
-  private static MutableCounterLong bytesWrittenCounter(
-      Pipeline pipeline, long bytes) {
-    return new MutableCounterLong(
-        Interns.info(getBytesWrittenMetricName(pipeline),
-            "Number of bytes written into pipeline " + pipeline.getId()),
-        bytes);
-  }
-
   /**
    * Increments number of failed pipeline creation count.
    */
diff --git 
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestOneReplicaPipelineSafeModeRule.java
 
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestOneReplicaPipelineSafeModeRule.java
index 49a346660a8..2836ec358fb 100644
--- 
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestOneReplicaPipelineSafeModeRule.java
+++ 
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestOneReplicaPipelineSafeModeRule.java
@@ -224,7 +224,6 @@ private void firePipelineEvent(List<Pipeline> pipelines) {
         reports.add(PipelineReport.newBuilder()
                 .setPipelineID(pipelineID)
                 .setIsLeader(true)
-                .setBytesWritten(0)
                 .build());
       }
       PipelineReportsProto.Builder pipelineReportsProto =
diff --git 
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeManager.java
 
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeManager.java
index ea5f81ce7da..d93a93ebb6f 100644
--- 
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeManager.java
+++ 
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeManager.java
@@ -414,7 +414,6 @@ private void firePipelineEvent(PipelineManager 
pipelineManager,
               .PipelineReport.newBuilder()
               .setPipelineID(pipelineID)
               .setIsLeader(true)
-              .setBytesWritten(0)
               .build());
       StorageContainerDatanodeProtocolProtos
               .PipelineReportsProto.Builder pipelineReportsProto =
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestSCMPipelineBytesWrittenMetrics.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestSCMPipelineBytesWrittenMetrics.java
deleted file mode 100644
index 3623da12411..00000000000
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestSCMPipelineBytesWrittenMetrics.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.hadoop.hdds.scm.pipeline;
-
-import static java.nio.charset.StandardCharsets.UTF_8;
-import static 
org.apache.hadoop.hdds.HddsConfigKeys.HDDS_PIPELINE_REPORT_INTERVAL;
-import static 
org.apache.hadoop.hdds.scm.ScmConfigKeys.OZONE_DATANODE_PIPELINE_LIMIT;
-import static 
org.apache.hadoop.hdds.scm.ScmConfigKeys.OZONE_SCM_PIPELINE_AUTO_CREATE_FACTOR_ONE;
-import static org.apache.ozone.test.MetricsAsserts.getLongCounter;
-import static org.apache.ozone.test.MetricsAsserts.getMetrics;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.UUID;
-import java.util.concurrent.TimeUnit;
-import org.apache.commons.lang3.RandomStringUtils;
-import org.apache.hadoop.hdds.client.ReplicationFactor;
-import org.apache.hadoop.hdds.client.ReplicationType;
-import org.apache.hadoop.hdds.conf.OzoneConfiguration;
-import org.apache.hadoop.hdds.utils.IOUtils;
-import org.apache.hadoop.metrics2.MetricsRecordBuilder;
-import org.apache.hadoop.ozone.MiniOzoneCluster;
-import org.apache.hadoop.ozone.client.ObjectStore;
-import org.apache.hadoop.ozone.client.OzoneBucket;
-import org.apache.hadoop.ozone.client.OzoneClient;
-import org.apache.hadoop.ozone.client.OzoneKeyDetails;
-import org.apache.hadoop.ozone.client.OzoneVolume;
-import org.apache.hadoop.ozone.client.io.OzoneOutputStream;
-import org.apache.hadoop.ozone.om.helpers.OmKeyArgs;
-import org.apache.ozone.test.GenericTestUtils;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-/**
- * Test cases to verify the SCM pipeline bytesWritten metrics.
- */
-public class TestSCMPipelineBytesWrittenMetrics {
-
-  private MiniOzoneCluster cluster;
-  private OzoneClient client;
-
-  @BeforeEach
-  public void setup() throws Exception {
-    OzoneConfiguration conf = new OzoneConfiguration();
-    conf.setBoolean(OZONE_SCM_PIPELINE_AUTO_CREATE_FACTOR_ONE, false);
-    conf.setInt(OZONE_DATANODE_PIPELINE_LIMIT, 1);
-    conf.setTimeDuration(HDDS_PIPELINE_REPORT_INTERVAL, 10, TimeUnit.SECONDS);
-
-    cluster = MiniOzoneCluster.newBuilder(conf)
-        .setNumDatanodes(3)
-        .build();
-    cluster.waitForClusterToBeReady();
-    client = cluster.newClient();
-  }
-
-  private void writeNumBytes(int numBytes) throws Exception {
-    ObjectStore store = client.getObjectStore();
-
-    String volumeName = UUID.randomUUID().toString();
-    String bucketName = UUID.randomUUID().toString();
-
-    String value = RandomStringUtils.secure().nextAlphabetic(numBytes);
-    store.createVolume(volumeName);
-    OzoneVolume volume = store.getVolume(volumeName);
-    volume.createBucket(bucketName);
-    OzoneBucket bucket = volume.getBucket(bucketName);
-
-    String keyName = UUID.randomUUID().toString();
-
-    OzoneOutputStream out = bucket
-        .createKey(keyName, value.getBytes(UTF_8).length, 
ReplicationType.RATIS,
-            ReplicationFactor.THREE, new HashMap<>());
-    out.write(value.getBytes(UTF_8));
-    out.close();
-
-    OmKeyArgs.Builder builder = new OmKeyArgs.Builder();
-    builder.setVolumeName(volumeName).setBucketName(bucketName)
-        .setKeyName(keyName);
-
-    OzoneKeyDetails keyDetails = bucket.getKey(keyName);
-    assertEquals(keyName, keyDetails.getName());
-    assertEquals(value.getBytes(UTF_8).length, keyDetails
-        .getOzoneKeyLocations().get(0).getLength());
-  }
-
-  @Test
-  public void testNumBytesWritten() throws Exception {
-    checkBytesWritten(0);
-    int bytesWritten = 1000;
-    writeNumBytes(bytesWritten);
-    checkBytesWritten(bytesWritten);
-
-  }
-
-  private void checkBytesWritten(long expectedBytesWritten) throws Exception {
-    // As only 3 datanodes and ozone.scm.pipeline.creation.auto.factor.one is
-    // false, so only pipeline in the system.
-    List<Pipeline> pipelines = cluster.getStorageContainerManager()
-        .getPipelineManager().getPipelines();
-
-    assertEquals(1, pipelines.size());
-    Pipeline pipeline = pipelines.get(0);
-
-    final String metricName =
-        SCMPipelineMetrics.getBytesWrittenMetricName(pipeline);
-    GenericTestUtils.waitFor(() -> {
-      MetricsRecordBuilder metrics = getMetrics(
-          SCMPipelineMetrics.class.getSimpleName());
-      return expectedBytesWritten == getLongCounter(metricName, metrics);
-    }, 500, 300000);
-  }
-
-  @AfterEach
-  public void teardown() {
-    IOUtils.closeQuietly(client);
-    cluster.shutdown();
-  }
-}


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@ozone.apache.org
For additional commands, e-mail: commits-h...@ozone.apache.org

Reply via email to