You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by lu...@apache.org on 2022/12/22 08:35:15 UTC
[bookkeeper] branch master updated: [refactor][bookkeeper] Refactor ByteBuf release method in bookkeeper-server (#3700)
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 700c5281e8 [refactor][bookkeeper] Refactor ByteBuf release method in bookkeeper-server (#3700)
700c5281e8 is described below
commit 700c5281e8e74dbbe2660eb9fea1b52c1e035400
Author: Qiang Huang <qi...@gmail.com>
AuthorDate: Thu Dec 22 16:35:09 2022 +0800
[refactor][bookkeeper] Refactor ByteBuf release method in bookkeeper-server (#3700)
* refactor ByteBuf release usage
---
.../bookie/storage/ldb/SingleDirectoryDbLedgerStorage.java | 5 +++--
.../java/org/apache/bookkeeper/proto/BookieClientImpl.java | 5 +++--
.../java/org/apache/bookkeeper/proto/BookieProtocol.java | 2 +-
.../org/apache/bookkeeper/proto/PerChannelBookieClient.java | 6 ++++--
.../org/apache/bookkeeper/proto/WriteEntryProcessor.java | 3 ++-
.../org/apache/bookkeeper/proto/checksum/DigestManager.java | 6 +++---
.../bookkeeper/bookie/storage/ldb/DbLedgerStorageTest.java | 13 +++++++------
.../bookkeeper/bookie/storage/ldb/WriteCacheTest.java | 5 +++--
8 files changed, 26 insertions(+), 19 deletions(-)
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/SingleDirectoryDbLedgerStorage.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/SingleDirectoryDbLedgerStorage.java
index 2035366d79..7ef1cf3309 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/SingleDirectoryDbLedgerStorage.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/SingleDirectoryDbLedgerStorage.java
@@ -31,6 +31,7 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;
import io.netty.buffer.Unpooled;
+import io.netty.util.ReferenceCountUtil;
import io.netty.util.concurrent.DefaultThreadFactory;
import java.io.File;
import java.io.IOException;
@@ -657,7 +658,7 @@ public class SingleDirectoryDbLedgerStorage implements CompactableLedgerStorage
currentEntryLocation += 4 + entry.readableBytes();
currentEntryLogId = currentEntryLocation >> 32;
} finally {
- entry.release();
+ ReferenceCountUtil.safeRelease(entry);
}
}
} catch (Exception e) {
@@ -940,7 +941,7 @@ public class SingleDirectoryDbLedgerStorage implements CompactableLedgerStorage
lac = bb.readLong();
lac = getOrAddLedgerInfo(ledgerId).setLastAddConfirmed(lac);
} finally {
- bb.release();
+ ReferenceCountUtil.safeRelease(bb);
}
}
return lac;
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieClientImpl.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieClientImpl.java
index e6c0dc0daa..eaecb45282 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieClientImpl.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieClientImpl.java
@@ -31,6 +31,7 @@ import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.util.Recycler;
import io.netty.util.Recycler.Handle;
+import io.netty.util.ReferenceCountUtil;
import io.netty.util.concurrent.DefaultThreadFactory;
import java.io.IOException;
import java.util.EnumSet;
@@ -269,7 +270,7 @@ public class BookieClientImpl implements BookieClient, PerChannelBookieClientFac
pcbc.writeLac(ledgerId, masterKey, lac, toSend, cb, ctx);
}
- toSend.release();
+ ReferenceCountUtil.safeRelease(toSend);
}, ledgerId, useV3Enforced);
}
@@ -410,7 +411,7 @@ public class BookieClientImpl implements BookieClient, PerChannelBookieClientFac
toSend, cb, ctx, options, allowFastFail, writeFlags);
}
- toSend.release();
+ ReferenceCountUtil.safeRelease(toSend);
recycle();
}
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieProtocol.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieProtocol.java
index c3b09b856d..feeb2499c8 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieProtocol.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieProtocol.java
@@ -333,7 +333,7 @@ public interface BookieProtocol {
}
void release() {
- data.release();
+ ReferenceCountUtil.safeRelease(data);
}
private final Handle<ParsedAddRequest> recyclerHandle;
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java
index cecf682ef9..c4643faa56 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java
@@ -61,6 +61,7 @@ import io.netty.incubator.channel.uring.IOUringEventLoopGroup;
import io.netty.incubator.channel.uring.IOUringSocketChannel;
import io.netty.util.Recycler;
import io.netty.util.Recycler.Handle;
+import io.netty.util.ReferenceCountUtil;
import io.netty.util.concurrent.Future;
import io.netty.util.concurrent.GenericFutureListener;
import java.io.IOException;
@@ -838,7 +839,7 @@ public class PerChannelBookieClient extends ChannelInboundHandlerAdapter {
// usually checked in writeAndFlush, but we have extra check
// because we need to release toSend.
errorOut(completionKey);
- toSend.release();
+ ReferenceCountUtil.safeRelease(toSend);
return;
} else {
// addEntry times out on backpressure
@@ -1943,7 +1944,8 @@ public class PerChannelBookieClient extends ChannelInboundHandlerAdapter {
handleReadResponse(readResponse.getLedgerId(),
readResponse.getEntryId(),
status, buffer, maxLAC, lacUpdateTimestamp);
- buffer.release(); // meaningless using unpooled, but client may expect to hold the last reference
+ ReferenceCountUtil.safeRelease(
+ buffer); // meaningless using unpooled, but client may expect to hold the last reference
}
private void handleReadResponse(long ledgerId,
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/WriteEntryProcessor.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/WriteEntryProcessor.java
index ec4acf31d2..881baf83ac 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/WriteEntryProcessor.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/WriteEntryProcessor.java
@@ -21,6 +21,7 @@ import com.google.common.annotations.VisibleForTesting;
import io.netty.buffer.ByteBuf;
import io.netty.channel.Channel;
import io.netty.util.Recycler;
+import io.netty.util.ReferenceCountUtil;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import org.apache.bookkeeper.bookie.BookieException;
@@ -101,7 +102,7 @@ class WriteEntryProcessor extends PacketProcessorBase<ParsedAddRequest> implemen
// some bad request which cause unexpected exception
rc = BookieProtocol.EBADREQ;
} finally {
- addData.release();
+ ReferenceCountUtil.safeRelease(addData);
}
if (rc != BookieProtocol.EOK) {
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/checksum/DigestManager.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/checksum/DigestManager.java
index b9e20bf1a3..96d1405715 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/checksum/DigestManager.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/checksum/DigestManager.java
@@ -115,7 +115,7 @@ public abstract class DigestManager {
final ByteBuf unwrapped = data.unwrap() != null && data.unwrap() instanceof CompositeByteBuf
? data.unwrap() : data;
ReferenceCountUtil.retain(unwrapped);
- ReferenceCountUtil.release(data);
+ ReferenceCountUtil.safeRelease(data);
if (unwrapped instanceof CompositeByteBuf) {
((CompositeByteBuf) unwrapped).forEach(this::update);
@@ -182,7 +182,7 @@ public abstract class DigestManager {
throw new BKDigestMatchException();
}
} finally {
- digest.release();
+ ReferenceCountUtil.safeRelease(digest);
}
long actualLedgerId = dataReceived.readLong();
@@ -222,7 +222,7 @@ public abstract class DigestManager {
throw new BKDigestMatchException();
}
} finally {
- digest.release();
+ ReferenceCountUtil.safeRelease(digest);
}
long actualLedgerId = dataReceived.readLong();
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/ldb/DbLedgerStorageTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/ldb/DbLedgerStorageTest.java
index 04d4e26082..78a599d51c 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/ldb/DbLedgerStorageTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/ldb/DbLedgerStorageTest.java
@@ -29,6 +29,7 @@ import com.google.common.collect.Lists;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufUtil;
import io.netty.buffer.Unpooled;
+import io.netty.util.ReferenceCountUtil;
import java.io.File;
import java.io.IOException;
import java.util.List;
@@ -357,7 +358,7 @@ public class DbLedgerStorageTest {
ByteBuf res = storage.getEntry(1, 2);
assertEquals(entry2, res);
- res.release();
+ ReferenceCountUtil.safeRelease(res);
storage.flush();
@@ -370,7 +371,7 @@ public class DbLedgerStorageTest {
res = storage.getEntry(1, 2);
assertEquals(entry2, res);
- res.release();
+ ReferenceCountUtil.safeRelease(res);
ByteBuf entry1 = Unpooled.buffer(1024);
entry1.writeLong(1); // ledger id
@@ -381,21 +382,21 @@ public class DbLedgerStorageTest {
res = storage.getEntry(1, 1);
assertEquals(entry1, res);
- res.release();
+ ReferenceCountUtil.safeRelease(res);
res = storage.getEntry(1, 2);
assertEquals(entry2, res);
- res.release();
+ ReferenceCountUtil.safeRelease(res);
storage.flush();
res = storage.getEntry(1, 1);
assertEquals(entry1, res);
- res.release();
+ ReferenceCountUtil.safeRelease(res);
res = storage.getEntry(1, 2);
assertEquals(entry2, res);
- res.release();
+ ReferenceCountUtil.safeRelease(res);
}
@Test
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/ldb/WriteCacheTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/ldb/WriteCacheTest.java
index d3c02f87c3..b139a66936 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/ldb/WriteCacheTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/ldb/WriteCacheTest.java
@@ -30,6 +30,7 @@ import io.netty.buffer.ByteBufAllocator;
import io.netty.buffer.ByteBufUtil;
import io.netty.buffer.Unpooled;
import io.netty.buffer.UnpooledByteBufAllocator;
+import io.netty.util.ReferenceCountUtil;
import java.nio.charset.Charset;
import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CountDownLatch;
@@ -78,7 +79,7 @@ public class WriteCacheTest {
assertEquals(0, cache.count());
assertEquals(0, cache.size());
- entry1.release();
+ ReferenceCountUtil.safeRelease(entry1);
cache.close();
}
@@ -119,7 +120,7 @@ public class WriteCacheTest {
assertEquals(0, findCount.get());
- entry.release();
+ ReferenceCountUtil.safeRelease(entry);
cache.close();
}