This is an automated email from the ASF dual-hosted git repository.
lushiji pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git
The following commit(s) were added to refs/heads/master by this push:
new f186d2a0a2 module bookkeeper-server: refactor ByteBuf release usage
(#3688)
f186d2a0a2 is described below
commit f186d2a0a2e8149672c44aa1eb51b863b0d31395
Author: StevenLuMT <[email protected]>
AuthorDate: Sun Dec 4 19:31:46 2022 +0800
module bookkeeper-server: refactor ByteBuf release usage (#3688)
Co-authored-by: lushiji <[email protected]>
---
.../src/main/java/org/apache/bookkeeper/bookie/Journal.java | 5 +++--
.../apache/bookkeeper/bookie/datainteg/EntryCopierImpl.java | 3 ++-
.../bookie/storage/directentrylogger/DirectEntryLogger.java | 3 ++-
.../bookie/storage/directentrylogger/DirectReader.java | 7 ++++---
.../bookie/storage/directentrylogger/LogMetadata.java | 9 +++++----
.../bookie/storage/directentrylogger/LogReaderScan.java | 3 ++-
.../org/apache/bookkeeper/bookie/storage/ldb/ReadCache.java | 3 ++-
.../java/org/apache/bookkeeper/bookie/BookieJournalTest.java | 11 ++++++-----
.../apache/bookkeeper/bookie/CheckpointOnNewLedgersTest.java | 5 +++--
.../storage/directentrylogger/TestDirectEntryLogger.java | 9 +++++----
10 files changed, 34 insertions(+), 24 deletions(-)
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Journal.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Journal.java
index 1a986707a8..8d435399e1 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Journal.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Journal.java
@@ -30,6 +30,7 @@ import io.netty.buffer.Unpooled;
import io.netty.buffer.UnpooledByteBufAllocator;
import io.netty.util.Recycler;
import io.netty.util.Recycler.Handle;
+import io.netty.util.ReferenceCountUtil;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
@@ -1271,7 +1272,7 @@ public class Journal extends BookieCriticalThread
implements CheckpointSource {
* (METAENTRY_ID_LEDGER_EXPLICITLAC) to Journal.
*/
memoryLimitController.releaseMemory(qe.entry.readableBytes());
- qe.entry.release();
+ ReferenceCountUtil.safeRelease(qe.entry);
} else if (qe.entryId != BookieImpl.METAENTRY_ID_FORCE_LEDGER)
{
int entrySize = qe.entry.readableBytes();
journalStats.getJournalWriteBytes().addCount(entrySize);
@@ -1287,7 +1288,7 @@ public class Journal extends BookieCriticalThread
implements CheckpointSource {
bc.write(lenBuff);
bc.write(qe.entry);
memoryLimitController.releaseMemory(qe.entry.readableBytes());
- qe.entry.release();
+ ReferenceCountUtil.safeRelease(qe.entry);
}
toFlush.add(qe);
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/datainteg/EntryCopierImpl.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/datainteg/EntryCopierImpl.java
index c0d0204760..2a8afed0e6 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/datainteg/EntryCopierImpl.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/datainteg/EntryCopierImpl.java
@@ -24,6 +24,7 @@ import com.google.common.base.Ticker;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSortedMap;
import io.netty.buffer.ByteBuf;
+import io.netty.util.ReferenceCountUtil;
import java.io.IOException;
import java.util.Collections;
import java.util.Comparator;
@@ -142,7 +143,7 @@ public class EntryCopierImpl implements EntryCopier {
} catch (Throwable t) {
promise.completeExceptionally(t);
} finally {
- buffer.release();
+ ReferenceCountUtil.safeRelease(buffer);
}
}
});
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectEntryLogger.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectEntryLogger.java
index 502ec90d7c..a602eff50d 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectEntryLogger.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectEntryLogger.java
@@ -30,6 +30,7 @@ import com.google.common.cache.CacheBuilder;
import com.google.common.cache.RemovalListener;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;
+import io.netty.util.ReferenceCountUtil;
import java.io.EOFException;
import java.io.File;
import java.io.IOException;
@@ -455,7 +456,7 @@ public class DirectEntryLogger implements EntryLogger {
writer.writeAt(0, buf);
writer.position(buf.capacity());
} finally {
- buf.release();
+ ReferenceCountUtil.safeRelease(buf);
}
return writer;
}
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectReader.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectReader.java
index fd26a0265f..d135807b2e 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectReader.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectReader.java
@@ -25,6 +25,7 @@ import static
org.apache.bookkeeper.common.util.ExceptionMessageHelper.exMsg;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;
+import io.netty.util.ReferenceCountUtil;
import java.io.EOFException;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
@@ -90,7 +91,7 @@ class DirectReader implements LogReader {
try {
readIntoBufferAt(buf, offset, size);
} catch (IOException e) {
- buf.release();
+ ReferenceCountUtil.safeRelease(buf);
throw e;
}
@@ -120,7 +121,7 @@ class DirectReader implements LogReader {
try {
return intBuf.getInt(0);
} finally {
- intBuf.release();
+ ReferenceCountUtil.safeRelease(intBuf);
}
}
}
@@ -137,7 +138,7 @@ class DirectReader implements LogReader {
try {
return longBuf.getLong(0);
} finally {
- longBuf.release();
+ ReferenceCountUtil.safeRelease(longBuf);
}
}
}
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/LogMetadata.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/LogMetadata.java
index 0765175189..cd870b5860 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/LogMetadata.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/LogMetadata.java
@@ -24,6 +24,7 @@ import static
org.apache.bookkeeper.common.util.ExceptionMessageHelper.exMsg;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;
+import io.netty.util.ReferenceCountUtil;
import java.io.IOException;
import org.apache.bookkeeper.bookie.EntryLogMetadata;
import org.apache.bookkeeper.util.collections.ConcurrentLongLongHashMap;
@@ -107,14 +108,14 @@ class LogMetadata {
throw e;
}
} finally {
- serializedMap.release();
+ ReferenceCountUtil.safeRelease(serializedMap);
}
ByteBuf buf = allocator.buffer(Buffer.ALIGNMENT);
try {
Header.writeHeader(buf, ledgerMapOffset, numberOfLedgers);
writer.writeAt(0, buf);
} finally {
- buf.release();
+ ReferenceCountUtil.safeRelease(buf);
}
writer.flush();
}
@@ -177,7 +178,7 @@ class LogMetadata {
.toString());
}
} finally {
- ledgerMapBuffer.release();
+ ReferenceCountUtil.safeRelease(ledgerMapBuffer);
}
}
return meta;
@@ -185,7 +186,7 @@ class LogMetadata {
throw new IOException(exMsg("Error reading index").kv("logId",
reader.logId())
.kv("reason", ioe.getMessage()).toString(),
ioe);
} finally {
- header.release();
+ ReferenceCountUtil.safeRelease(header);
}
}
}
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/LogReaderScan.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/LogReaderScan.java
index eadc02f3da..0aad1175eb 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/LogReaderScan.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/LogReaderScan.java
@@ -22,6 +22,7 @@ package
org.apache.bookkeeper.bookie.storage.directentrylogger;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.PooledByteBufAllocator;
+import io.netty.util.ReferenceCountUtil;
import java.io.IOException;
import org.apache.bookkeeper.bookie.storage.EntryLogScanner;
@@ -55,7 +56,7 @@ class LogReaderScan {
offset += entrySize;
}
} finally {
- entry.release();
+ ReferenceCountUtil.safeRelease(entry);
}
}
}
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/ReadCache.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/ReadCache.java
index 9b19a51f55..27cbf35714 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/ReadCache.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/ReadCache.java
@@ -25,6 +25,7 @@ import static
org.apache.bookkeeper.bookie.storage.ldb.WriteCache.align64;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;
import io.netty.buffer.Unpooled;
+import io.netty.util.ReferenceCountUtil;
import java.io.Closeable;
import java.util.ArrayList;
import java.util.List;
@@ -85,7 +86,7 @@ public class ReadCache implements Closeable {
@Override
public void close() {
- cacheSegments.forEach(ByteBuf::release);
+ cacheSegments.forEach(ReferenceCountUtil::safeRelease);
}
public void put(long ledgerId, long entryId, ByteBuf entry) {
diff --git
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/BookieJournalTest.java
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/BookieJournalTest.java
index 433433b956..77db1959cd 100644
---
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/BookieJournalTest.java
+++
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/BookieJournalTest.java
@@ -27,6 +27,7 @@ import static org.junit.Assert.fail;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
+import io.netty.util.ReferenceCountUtil;
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
@@ -173,7 +174,7 @@ public class BookieJournalTest {
fc.write(lenBuff);
fc.write(packet.nioBuffer());
- packet.release();
+ ReferenceCountUtil.safeRelease(packet);
}
}
@@ -217,7 +218,7 @@ public class BookieJournalTest {
bc.write(Unpooled.wrappedBuffer(lenBuff));
bc.write(packet);
- packet.release();
+ ReferenceCountUtil.safeRelease(packet);
}
bc.flushAndForceWrite(false);
@@ -251,7 +252,7 @@ public class BookieJournalTest {
bc.write(Unpooled.wrappedBuffer(lenBuff));
bc.write(packet);
- packet.release();
+ ReferenceCountUtil.safeRelease(packet);
}
bc.flushAndForceWrite(false);
@@ -284,7 +285,7 @@ public class BookieJournalTest {
lenBuff.flip();
bc.write(Unpooled.wrappedBuffer(lenBuff));
bc.write(packet);
- packet.release();
+ ReferenceCountUtil.safeRelease(packet);
}
// write fence key
ByteBuf packet = generateFenceEntry(1);
@@ -332,7 +333,7 @@ public class BookieJournalTest {
}
bc.write(lenBuff);
bc.write(packet);
- packet.release();
+ ReferenceCountUtil.safeRelease(packet);
Journal.writePaddingBytes(jc, paddingBuff,
JournalChannel.SECTOR_SIZE);
}
// write fence key
diff --git
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/CheckpointOnNewLedgersTest.java
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/CheckpointOnNewLedgersTest.java
index 318f6c4b07..9f4193ee9d 100644
---
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/CheckpointOnNewLedgersTest.java
+++
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/CheckpointOnNewLedgersTest.java
@@ -27,6 +27,7 @@ import static org.mockito.Mockito.spy;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
+import io.netty.util.ReferenceCountUtil;
import java.io.File;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ThreadLocalRandom;
@@ -183,14 +184,14 @@ public class CheckpointOnNewLedgersTest {
assertNotNull(entry);
assertEquals(l2, entry.readLong());
assertEquals((long) i, entry.readLong());
- entry.release();
+ ReferenceCountUtil.safeRelease(entry);
}
ByteBuf entry = newBookie.readEntry(l1, 0L);
assertNotNull(entry);
assertEquals(l1, entry.readLong());
assertEquals(0L, entry.readLong());
- entry.release();
+ ReferenceCountUtil.safeRelease(entry);
newBookie.shutdown();
}
diff --git
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/directentrylogger/TestDirectEntryLogger.java
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/directentrylogger/TestDirectEntryLogger.java
index 6d9068fb21..e4d6b6840a 100644
---
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/directentrylogger/TestDirectEntryLogger.java
+++
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/directentrylogger/TestDirectEntryLogger.java
@@ -32,6 +32,7 @@ import static org.hamcrest.Matchers.greaterThan;
import com.google.common.util.concurrent.MoreExecutors;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;
+import io.netty.util.ReferenceCountUtil;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
@@ -138,15 +139,15 @@ public class TestDirectEntryLogger {
ByteBuf e2read = elog.readEntry(ledgerId1, 2L, loc2);
assertEntryEquals(e1read, e1);
assertEntryEquals(e2read, e2);
- e1read.release();
- e2read.release();
+ ReferenceCountUtil.safeRelease(e1read);
+ ReferenceCountUtil.safeRelease(e2read);
long loc3 = elog.addEntry(ledgerId1, e3.slice());
elog.flush();
ByteBuf e3read = elog.readEntry(ledgerId1, 3L, loc3);
assertEntryEquals(e3read, e3);
- e3read.release();
+ ReferenceCountUtil.safeRelease(e3read);
}
}
@@ -199,7 +200,7 @@ public class TestDirectEntryLogger {
}
elog.flush();
for (Long loc : locations) {
- elog.readEntry(loc).release();
+ ReferenceCountUtil.safeRelease(elog.readEntry(loc));
}
assertThat(outstandingReaders.get(), equalTo(maxCachedReaders));
} finally {