From 77e4a5020bf9a75aa6a0417a875f0c11141b222e Mon Sep 17 00:00:00 2001 From: Duong Nguyen Date: Thu, 7 Nov 2024 11:52:13 -0800 Subject: [PATCH 1/2] HDDS-11665. Minor optimizations for hbase --- .../org/apache/hadoop/hdds/scm/XceiverClientRatis.java | 2 +- .../ozone/common/ChunkBufferImplWithByteBuffer.java | 3 +-- .../hadoop/ozone/container/common/helpers/BlockData.java | 2 +- .../apache/hadoop/ozone/client/io/KeyOutputStream.java | 8 ++------ 4 files changed, 5 insertions(+), 10 deletions(-) diff --git a/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/XceiverClientRatis.java b/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/XceiverClientRatis.java index b0ef85cfbf7a..979b1b992086 100644 --- a/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/XceiverClientRatis.java +++ b/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/XceiverClientRatis.java @@ -282,7 +282,7 @@ private CompletableFuture sendRequestAsync( // gets the minimum log index replicated to all servers @Override public long getReplicatedMinCommitIndex() { - return commitInfoMap.values().parallelStream() + return commitInfoMap.values().stream() .mapToLong(Long::longValue).min().orElse(0); } diff --git a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/common/ChunkBufferImplWithByteBuffer.java b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/common/ChunkBufferImplWithByteBuffer.java index 36c16e92bf0d..09a483b8cb82 100644 --- a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/common/ChunkBufferImplWithByteBuffer.java +++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/common/ChunkBufferImplWithByteBuffer.java @@ -35,7 +35,6 @@ final class ChunkBufferImplWithByteBuffer implements ChunkBuffer { private final ByteBuffer buffer; private final UncheckedAutoCloseable underlying; - private final UUID identity = UUID.randomUUID(); ChunkBufferImplWithByteBuffer(ByteBuffer buffer) { this(buffer, null); @@ -163,6 +162,6 @@ public int hashCode() { @Override public String toString() { return getClass().getSimpleName() + ":limit=" + buffer.limit() - + "@" + identity; + + "@" + Integer.toHexString(super.hashCode()); } } diff --git a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/container/common/helpers/BlockData.java b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/container/common/helpers/BlockData.java index b3ee5991737d..4fee39921b6e 100644 --- a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/container/common/helpers/BlockData.java +++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/container/common/helpers/BlockData.java @@ -254,7 +254,7 @@ public void setChunks(List chunks) { size = singleChunk.getLen(); } else { chunkList = chunks; - size = chunks.parallelStream() + size = chunks.stream() .mapToLong(ContainerProtos.ChunkInfo::getLen) .sum(); } diff --git a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/io/KeyOutputStream.java b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/io/KeyOutputStream.java index 4f9e5db49a92..b5f8191d368e 100644 --- a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/io/KeyOutputStream.java +++ b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/io/KeyOutputStream.java @@ -303,7 +303,7 @@ private int writeToOutputStream(BlockOutputStreamEntry current, if (retry) { current.writeOnRetry(len); } else { - waitForRetryHandling(current); + current.waitForRetryHandling(retryHandlingCondition); current.write(b, off, writeLen); offset += writeLen; } @@ -584,7 +584,7 @@ private void handleFlushOrClose(StreamAction op) throws IOException { blockOutputStreamEntryPool.getCurrentStreamEntry(); if (entry != null) { // If the current block is to handle retries, wait until all the retries are done. - waitForRetryHandling(entry); + doInWriteLock(() -> entry.waitForRetryHandling(retryHandlingCondition)); entry.registerCallReceived(); try { handleStreamAction(entry, op); @@ -608,10 +608,6 @@ private void handleFlushOrClose(StreamAction op) throws IOException { } } - private void waitForRetryHandling(BlockOutputStreamEntry currentEntry) throws InterruptedException { - doInWriteLock(() -> currentEntry.waitForRetryHandling(retryHandlingCondition)); - } - private void handleStreamAction(BlockOutputStreamEntry entry, StreamAction op) throws IOException { Collection failedServers = entry.getFailedServers(); From f0e69b49562e88a7419a658d5df7c1bb784f92b3 Mon Sep 17 00:00:00 2001 From: Duong Nguyen Date: Thu, 7 Nov 2024 15:47:28 -0800 Subject: [PATCH 2/2] checkstyle. --- .../hadoop/ozone/common/ChunkBufferImplWithByteBuffer.java | 1 - 1 file changed, 1 deletion(-) diff --git a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/common/ChunkBufferImplWithByteBuffer.java b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/common/ChunkBufferImplWithByteBuffer.java index 09a483b8cb82..782476eb56d5 100644 --- a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/common/ChunkBufferImplWithByteBuffer.java +++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/common/ChunkBufferImplWithByteBuffer.java @@ -25,7 +25,6 @@ import java.util.List; import java.util.NoSuchElementException; import java.util.Objects; -import java.util.UUID; import java.util.function.Function; import org.apache.ratis.thirdparty.com.google.protobuf.ByteString;