You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ozone.apache.org by ag...@apache.org on 2023/04/12 05:08:20 UTC

[ozone] branch master updated: HDDS-8228. Add metric for out of order/retried delete transactions (#4533)

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

agupta 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 6da7aa086a HDDS-8228. Add metric for out of order/retried delete transactions (#4533)
6da7aa086a is described below

commit 6da7aa086a6f2b2044351b7ca1bbbbeedee75f83
Author: Sumit Agrawal <su...@gmail.com>
AuthorDate: Wed Apr 12 10:38:15 2023 +0530

    HDDS-8228. Add metric for out of order/retried delete transactions (#4533)
---
 .../common/helpers/BlockDeletingServiceMetrics.java       | 15 ++++++++++++++-
 .../commandhandler/DeleteBlocksCommandHandler.java        |  4 ++++
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/helpers/BlockDeletingServiceMetrics.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/helpers/BlockDeletingServiceMetrics.java
index 76d1c009ef..15ce6015b4 100644
--- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/helpers/BlockDeletingServiceMetrics.java
+++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/helpers/BlockDeletingServiceMetrics.java
@@ -45,6 +45,9 @@ public final class BlockDeletingServiceMetrics {
   @Metric(about = "The number of failed delete blocks.")
   private MutableCounterLong failureCount;
 
+  @Metric(about = "The number of out of order delete block transaction.")
+  private MutableCounterLong outOfOrderDeleteBlockTransactionCount;
+
   private BlockDeletingServiceMetrics() {
   }
 
@@ -91,12 +94,22 @@ public final class BlockDeletingServiceMetrics {
     return failureCount.value();
   }
 
+  public void incOutOfOrderDeleteBlockTransactionCount() {
+    this.outOfOrderDeleteBlockTransactionCount.incr();
+  }
+
+  public long getOutOfOrderDeleteBlockTransactionCount() {
+    return outOfOrderDeleteBlockTransactionCount.value();
+  }
+
   @Override
   public String toString() {
     StringBuffer buffer = new StringBuffer();
     buffer.append("successCount = " + successCount.value()).append("\t")
         .append("successBytes = " + successBytes.value()).append("\t")
-        .append("failureCount = " + failureCount.value()).append("\t");
+        .append("failureCount = " + failureCount.value()).append("\t")
+        .append("outOfOrderDeleteBlockTransactionCount = "
+            + outOfOrderDeleteBlockTransactionCount.value()).append("\t");
     return buffer.toString();
   }
 }
diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/DeleteBlocksCommandHandler.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/DeleteBlocksCommandHandler.java
index bbb2c6104f..86ac4e931c 100644
--- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/DeleteBlocksCommandHandler.java
+++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/DeleteBlocksCommandHandler.java
@@ -32,6 +32,7 @@ import org.apache.hadoop.hdds.protocol.proto
     .StorageContainerDatanodeProtocolProtos.DeletedBlocksTransaction;
 import org.apache.hadoop.hdds.utils.db.Table;
 import org.apache.hadoop.ozone.container.common.helpers.BlockData;
+import org.apache.hadoop.ozone.container.common.helpers.BlockDeletingServiceMetrics;
 import org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList;
 import org.apache.hadoop.ozone.container.common.helpers
     .DeletedContainerBlocksSummary;
@@ -89,12 +90,14 @@ public class DeleteBlocksCommandHandler implements CommandHandler {
   private final LinkedBlockingQueue<DeleteCmdInfo> deleteCommandQueues;
   private final Daemon handlerThread;
   private final OzoneContainer ozoneContainer;
+  private final BlockDeletingServiceMetrics blockDeleteMetrics;
 
   public DeleteBlocksCommandHandler(OzoneContainer container,
       ConfigurationSource conf, int threadPoolSize, int queueLimit) {
     this.ozoneContainer = container;
     this.containerSet = container.getContainerSet();
     this.conf = conf;
+    this.blockDeleteMetrics = BlockDeletingServiceMetrics.create();
     this.executor = Executors.newFixedThreadPool(
         threadPoolSize, new ThreadFactoryBuilder()
             .setNameFormat("DeleteBlocksCommandHandlerThread-%d").build());
@@ -486,6 +489,7 @@ public class DeleteBlocksCommandHandler implements CommandHandler {
     }
 
     if (delTX.getTxID() <= containerData.getDeleteTransactionId()) {
+      blockDeleteMetrics.incOutOfOrderDeleteBlockTransactionCount();
       LOG.info(String.format("Delete blocks for containerId: %d"
               + " is either received out of order or retried,"
               + " %d <= %d", containerId, delTX.getTxID(),


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