This is an automated email from the ASF dual-hosted git repository. yong pushed a commit to branch branch-4.16 in repository https://gitbox.apache.org/repos/asf/bookkeeper.git
commit 2060f9fb2919a630c07584a09cf10651d269b7f8 Author: houxiaoyu <[email protected]> AuthorDate: Mon Jun 19 17:06:25 2023 +0800 Change pendingDeletedLedgers as ConcurrentHashSet (#3989) (cherry picked from commit 2baee3629f8d0bde1ae66fb3cade2ed0326a1d88) --- .../bookkeeper/bookie/storage/ldb/LedgerMetadataIndex.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/LedgerMetadataIndex.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/LedgerMetadataIndex.java index c93bc0b7db..cf6cbfcdc2 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/LedgerMetadataIndex.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/LedgerMetadataIndex.java @@ -22,6 +22,7 @@ package org.apache.bookkeeper.bookie.storage.ldb; import com.google.common.base.Predicate; import com.google.common.collect.Iterables; +import com.google.common.collect.Sets; import com.google.protobuf.ByteString; import io.netty.buffer.ByteBuf; import java.io.Closeable; @@ -29,6 +30,7 @@ import java.io.IOException; import java.util.AbstractMap.SimpleEntry; import java.util.Arrays; import java.util.Map.Entry; +import java.util.Set; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.ReentrantLock; @@ -63,7 +65,7 @@ public class LedgerMetadataIndex implements Closeable { private final ConcurrentLinkedQueue<Entry<Long, LedgerData>> pendingLedgersUpdates; // Holds ledger ids that were delete from memory map, and pending to be flushed on db - private final ConcurrentLinkedQueue<Long> pendingDeletedLedgers; + private final Set<Long> pendingDeletedLedgers; private final ReentrantLock[] locks = new ReentrantLock[16]; public LedgerMetadataIndex(ServerConfiguration conf, KeyValueStorageFactory storageFactory, String basePath, @@ -90,7 +92,7 @@ public class LedgerMetadataIndex implements Closeable { } this.pendingLedgersUpdates = new ConcurrentLinkedQueue<Entry<Long, LedgerData>>(); - this.pendingDeletedLedgers = new ConcurrentLinkedQueue<Long>(); + this.pendingDeletedLedgers = Sets.newConcurrentHashSet(); this.stats = new LedgerMetadataIndexStats( stats, @@ -318,8 +320,7 @@ public class LedgerMetadataIndex implements Closeable { LongWrapper key = LongWrapper.get(); int deletedLedgers = 0; - Long ledgerId; - while ((ledgerId = pendingDeletedLedgers.poll()) != null) { + for (Long ledgerId : pendingDeletedLedgers) { key.set(ledgerId); ledgersDb.delete(key.array); }
