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

ChenSammi 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 a4aeff75f6c HDDS-15664. ozone debug ldb display 
DeletedBlocksTransactionSummary info (#10614)
a4aeff75f6c is described below

commit a4aeff75f6cbb13537ba6a48fe33fd18c6d4ff93
Author: Sammi Chen <[email protected]>
AuthorDate: Fri Jul 3 14:14:39 2026 +0800

    HDDS-15664. ozone debug ldb display DeletedBlocksTransactionSummary info 
(#10614)
---
 .../apache/hadoop/ozone/debug/ldb/DBScanner.java   | 24 +++++++++++++++++++---
 1 file changed, 21 insertions(+), 3 deletions(-)

diff --git 
a/hadoop-ozone/cli-debug/src/main/java/org/apache/hadoop/ozone/debug/ldb/DBScanner.java
 
b/hadoop-ozone/cli-debug/src/main/java/org/apache/hadoop/ozone/debug/ldb/DBScanner.java
index 6338c49d988..c5a34b19958 100644
--- 
a/hadoop-ozone/cli-debug/src/main/java/org/apache/hadoop/ozone/debug/ldb/DBScanner.java
+++ 
b/hadoop-ozone/cli-debug/src/main/java/org/apache/hadoop/ozone/debug/ldb/DBScanner.java
@@ -18,6 +18,8 @@
 package org.apache.hadoop.ozone.debug.ldb;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static 
org.apache.hadoop.hdds.scm.block.DeletedBlockLogStateManagerImpl.SERVICE_NAME;
+import static 
org.apache.hadoop.hdds.scm.metadata.SCMDBDefinition.STATEFUL_SERVICE_CONFIG;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonInclude;
@@ -28,6 +30,7 @@
 import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import com.google.protobuf.ByteString;
 import java.io.BufferedWriter;
 import java.io.File;
 import java.io.IOException;
@@ -54,6 +57,7 @@
 import java.util.regex.Pattern;
 import org.apache.hadoop.hdds.cli.AbstractSubcommand;
 import org.apache.hadoop.hdds.conf.OzoneConfiguration;
+import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
 import org.apache.hadoop.hdds.scm.container.ContainerID;
 import org.apache.hadoop.hdds.scm.pipeline.PipelineID;
 import org.apache.hadoop.hdds.utils.IOUtils;
@@ -730,9 +734,9 @@ public Void call() {
             // one, to ensure valid JSON format.
             sb.append(", ");
           }
+          Object key = dbColumnFamilyDefinition.getKeyCodec()
+              .fromPersistedFormat(byteArrayKeyValue.getKey());
           if (withKey) {
-            Object key = dbColumnFamilyDefinition.getKeyCodec()
-                .fromPersistedFormat(byteArrayKeyValue.getKey());
             if (schemaV3) {
               int index =
                   
DatanodeSchemaThreeDBDefinition.getContainerKeyPrefixLength();
@@ -758,9 +762,11 @@ public Void call() {
           Object o = dbColumnFamilyDefinition.getValueCodec()
               .fromPersistedFormat(byteArrayKeyValue.getValue());
 
+          o = parseStatefulServiceConfig(key, o, dbColumnFamilyDefinition);
+
           if (valueFields != null) {
             Map<String, Object> filteredValue = new HashMap<>();
-            filteredValue.putAll(getFieldsFilteredObject(o, 
dbColumnFamilyDefinition.getValueType(), fieldsSplitMap));
+            filteredValue.putAll(getFieldsFilteredObject(o, o.getClass(), 
fieldsSplitMap));
             sb.append(writer.writeValueAsString(filteredValue));
           } else {
             sb.append(writer.writeValueAsString(o));
@@ -829,6 +835,18 @@ List<Object> 
getFieldsFilteredObjectCollection(Collection<?> valueObject, Map<St
     }
   }
 
+  private Object parseStatefulServiceConfig(Object key, Object value, 
DBColumnFamilyDefinition dbColumnFamily) {
+    if (dbColumnFamily.getName().equals(STATEFUL_SERVICE_CONFIG.getName()) && 
key.equals(SERVICE_NAME) &&
+        value instanceof ByteString) {
+      try {
+        return 
HddsProtos.DeletedBlocksTransactionSummary.parseFrom((ByteString) value);
+      } catch (IOException e) {
+        LOG.error("Failed to parse {} for key {}", 
STATEFUL_SERVICE_CONFIG.getName(), SERVICE_NAME, e);
+      }
+    }
+    return value;
+  }
+
   private static class ByteArrayKeyValue {
     private final byte[] key;
     private final byte[] value;


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to