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]