This is an automated email from the ASF dual-hosted git repository. chenhang pushed a commit to branch branch-4.14 in repository https://gitbox.apache.org/repos/asf/bookkeeper.git
commit 963c80d3961e96f1e0b64d3eaf9ba29bf0ed6639 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 9d84e6ac4c..51500ed797 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; @@ -30,6 +31,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; @@ -61,7 +63,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; public LedgerMetadataIndex(ServerConfiguration conf, KeyValueStorageFactory storageFactory, String basePath, StatsLogger stats) throws IOException { @@ -85,7 +87,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, @@ -228,8 +230,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); }
