From 0bd4217194ae50ec30e386b200fcfa54c069f042 Mon Sep 17 00:00:00 2001 From: Nanda kumar Date: Wed, 29 Aug 2018 13:31:19 +0530 Subject: [PATCH] HDDS-380. Remove synchronization from ChunkGroupOutputStream and ChunkOutputStream. Contributed by Shashikant Banerjee. --- .../hdds/scm/storage/ChunkOutputStream.java | 16 ++++++++-------- .../ozone/client/io/ChunkGroupOutputStream.java | 12 ++++++------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/storage/ChunkOutputStream.java b/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/storage/ChunkOutputStream.java index f2df3fa1ec..8d311d0e1b 100644 --- a/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/storage/ChunkOutputStream.java +++ b/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/storage/ChunkOutputStream.java @@ -99,7 +99,7 @@ public ByteBuffer getBuffer() { } @Override - public synchronized void write(int b) throws IOException { + public void write(int b) throws IOException { checkOpen(); int rollbackPosition = buffer.position(); int rollbackLimit = buffer.limit(); @@ -110,7 +110,7 @@ public synchronized void write(int b) throws IOException { } @Override - public synchronized void write(byte[] b, int off, int len) + public void write(byte[] b, int off, int len) throws IOException { if (b == null) { throw new NullPointerException(); @@ -137,7 +137,7 @@ public synchronized void write(byte[] b, int off, int len) } @Override - public synchronized void flush() throws IOException { + public void flush() throws IOException { checkOpen(); if (buffer.position() > 0) { int rollbackPosition = buffer.position(); @@ -147,7 +147,7 @@ public synchronized void flush() throws IOException { } @Override - public synchronized void close() throws IOException { + public void close() throws IOException { if (xceiverClientManager != null && xceiverClient != null && buffer != null) { if (buffer.position() > 0) { @@ -164,7 +164,7 @@ public synchronized void close() throws IOException { } } - public synchronized void cleanup() { + public void cleanup() { xceiverClientManager.releaseClient(xceiverClient); xceiverClientManager = null; xceiverClient = null; @@ -176,7 +176,7 @@ public synchronized void cleanup() { * * @throws IOException if stream is closed */ - private synchronized void checkOpen() throws IOException { + private void checkOpen() throws IOException { if (xceiverClient == null) { throw new IOException("ChunkOutputStream has been closed."); } @@ -191,7 +191,7 @@ private synchronized void checkOpen() throws IOException { * @param rollbackLimit limit to restore in buffer if write fails * @throws IOException if there is an I/O error while performing the call */ - private synchronized void flushBufferToChunk(int rollbackPosition, + private void flushBufferToChunk(int rollbackPosition, int rollbackLimit) throws IOException { boolean success = false; try { @@ -213,7 +213,7 @@ private synchronized void flushBufferToChunk(int rollbackPosition, * * @throws IOException if there is an I/O error while performing the call */ - private synchronized void writeChunkToContainer() throws IOException { + private void writeChunkToContainer() throws IOException { buffer.flip(); ByteString data = ByteString.copyFrom(buffer); ChunkInfo chunk = ChunkInfo diff --git a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/io/ChunkGroupOutputStream.java b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/io/ChunkGroupOutputStream.java index 988af07331..00624d577b 100644 --- a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/io/ChunkGroupOutputStream.java +++ b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/io/ChunkGroupOutputStream.java @@ -105,7 +105,7 @@ public ChunkGroupOutputStream() { * @param length */ @VisibleForTesting - public synchronized void addStream(OutputStream outputStream, long length) { + public void addStream(OutputStream outputStream, long length) { streamEntries.add(new ChunkOutputStreamEntry(outputStream, length)); } @@ -227,7 +227,7 @@ public long getByteOffset() { @Override - public synchronized void write(int b) throws IOException { + public void write(int b) throws IOException { byte[] buf = new byte[1]; buf[0] = (byte) b; write(buf, 0, 1); @@ -246,7 +246,7 @@ public synchronized void write(int b) throws IOException { * @throws IOException */ @Override - public synchronized void write(byte[] b, int off, int len) + public void write(byte[] b, int off, int len) throws IOException { checkNotClosed(); handleWrite(b, off, len); @@ -404,7 +404,7 @@ private void allocateNewBlock(int index) throws IOException { } @Override - public synchronized void flush() throws IOException { + public void flush() throws IOException { checkNotClosed(); handleFlushOrClose(false); } @@ -450,7 +450,7 @@ private void handleFlushOrClose(boolean close) throws IOException { * @throws IOException */ @Override - public synchronized void close() throws IOException { + public void close() throws IOException { if (closed) { return; } @@ -585,7 +585,7 @@ long getRemaining() { return length - currentPosition; } - private synchronized void checkStream() { + private void checkStream() { if (this.outputStream == null) { this.outputStream = new ChunkOutputStream(blockID, key, xceiverClientManager, xceiverClient,