You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by te...@apache.org on 2022/10/31 06:14:24 UTC
[pulsar] 02/05: Avoid unnecessary creation of BitSetRecyclable objects (#17998)
This is an automated email from the ASF dual-hosted git repository.
technoboy pushed a commit to branch branch-2.11
in repository https://gitbox.apache.org/repos/asf/pulsar.git
commit d612b8f304deaca77fa94500c18bfcc1756d0d11
Author: LinChen <15...@qq.com>
AuthorDate: Thu Oct 13 09:51:48 2022 +0800
Avoid unnecessary creation of BitSetRecyclable objects (#17998)
Co-authored-by: leolinchen <le...@tencent.com>
---
.../org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java
index ed861e6830f..3c3bad218d4 100644
--- a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java
+++ b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java
@@ -2168,11 +2168,12 @@ public class ManagedCursorImpl implements ManagedCursor {
individualDeletedMessages);
}
} else if (config.isDeletionAtBatchIndexLevelEnabled() && batchDeletedIndexes != null) {
- BitSetRecyclable bitSet = batchDeletedIndexes.computeIfAbsent(position, (v) ->
- BitSetRecyclable.create().resetWords(position.ackSet));
BitSetRecyclable givenBitSet = BitSetRecyclable.create().resetWords(position.ackSet);
- bitSet.and(givenBitSet);
- givenBitSet.recycle();
+ BitSetRecyclable bitSet = batchDeletedIndexes.computeIfAbsent(position, (v) -> givenBitSet);
+ if (givenBitSet != bitSet) {
+ bitSet.and(givenBitSet);
+ givenBitSet.recycle();
+ }
if (bitSet.isEmpty()) {
PositionImpl previousPosition = ledger.getPreviousPosition(position);
individualDeletedMessages.addOpenClosed(previousPosition.getLedgerId(),