diff --git a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/Table.java b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/Table.java index 0c435066b8e2..f519bca5b107 100644 --- a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/Table.java +++ b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/Table.java @@ -337,12 +337,8 @@ interface KeyValue { VALUE getValue() throws IOException; - default byte[] getRawKey() throws IOException { - return null; - } - - default byte[] getRawValue() throws IOException { - return null; + default int getRawSize() throws IOException { + return 0; } } @@ -383,7 +379,7 @@ public int hashCode() { }; } - static KeyValue newKeyValue(K key, V value, byte[] rawKey, byte[] rawValue) { + static KeyValue newKeyValue(K key, V value, int rawSize) { return new KeyValue() { @Override public K getKey() { @@ -396,13 +392,8 @@ public V getValue() { } @Override - public byte[] getRawKey() throws IOException { - return rawKey; - } - - @Override - public byte[] getRawValue() throws IOException { - return rawValue; + public int getRawSize() throws IOException { + return rawSize; } @Override diff --git a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/TypedTable.java b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/TypedTable.java index 9609b5bfc283..d7bd554a0cd0 100644 --- a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/TypedTable.java +++ b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/TypedTable.java @@ -605,11 +605,9 @@ public CodecBuffer get() { @Override KeyValue convert(KeyValue raw) throws IOException { - CodecBuffer keyCodecBuffer = raw.getKey(); - final KEY key = keyCodec.fromCodecBuffer(keyCodecBuffer); - CodecBuffer valueCodecBuffer = raw.getValue(); - final VALUE value = valueCodec.fromCodecBuffer(valueCodecBuffer); - return Table.newKeyValue(key, value, keyCodecBuffer.getArray(), valueCodecBuffer.getArray()); + final KEY key = keyCodec.fromCodecBuffer(raw.getKey()); + final VALUE value = valueCodec.fromCodecBuffer(raw.getValue()); + return Table.newKeyValue(key, value, raw.getRawSize()); } }; } diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/KeyManagerImpl.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/KeyManagerImpl.java index 4fe509d7e9cd..6bad74b6d42e 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/KeyManagerImpl.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/KeyManagerImpl.java @@ -2102,7 +2102,7 @@ private DeleteKeysResult gatherSubDirsWithIterator(OmKeyInfo parentInfo, while (iterator.hasNext() && remainingBufLimit > 0) { Table.KeyValue entry = iterator.next(); OmDirectoryInfo dirInfo = entry.getValue(); - long objectSerializedSize = entry.getRawValue().length; + long objectSerializedSize = entry.getRawSize(); if (!OMFileRequest.isImmediateChild(dirInfo.getParentObjectID(), parentInfo.getObjectID())) { processedSubDirs = true; @@ -2149,7 +2149,7 @@ public DeleteKeysResult getPendingDeletionSubFiles(long volumeId, while (iterator.hasNext() && remainingBufLimit > 0) { Table.KeyValue entry = iterator.next(); OmKeyInfo fileInfo = entry.getValue(); - long objectSerializedSize = entry.getRawValue().length; + long objectSerializedSize = entry.getRawSize(); if (!OMFileRequest.isImmediateChild(fileInfo.getParentObjectID(), parentInfo.getObjectID())) { processedSubFiles = true;