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);
         }

Reply via email to