Skip to content

Commit

Permalink
[fix][misc] Remove RoaringBitmap dependency from pulsar-common (#23008)
Browse files Browse the repository at this point in the history
(cherry picked from commit 32e29a3)
  • Loading branch information
lhotari committed Jul 8, 2024
1 parent 0c54bb8 commit 57a91b0
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 10 deletions.
2 changes: 0 additions & 2 deletions distribution/shell/src/assemble/LICENSE.bin.txt
Original file line number Diff line number Diff line change
Expand Up @@ -383,8 +383,6 @@ The Apache Software License, Version 2.0
- simpleclient_tracer_common-0.16.0.jar
- simpleclient_tracer_otel-0.16.0.jar
- simpleclient_tracer_otel_agent-0.16.0.jar
* RoaringBitmap
- RoaringBitmap-1.2.0.jar
* Log4J
- log4j-api-2.18.0.jar
- log4j-core-2.18.0.jar
Expand Down
4 changes: 4 additions & 0 deletions managed-ledger/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,10 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.roaringbitmap</groupId>
<artifactId>RoaringBitmap</artifactId>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-core</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import org.apache.bookkeeper.mledger.ManagedLedgerConfig;
import org.apache.pulsar.common.util.collections.LongPairRangeSet;
import org.apache.pulsar.common.util.collections.OpenLongPairRangeSet;
import org.roaringbitmap.RoaringBitSet;

/**
* Wraps other Range classes, and adds LRU, marking dirty data and other features on this basis.
Expand Down Expand Up @@ -55,7 +56,7 @@ public RangeSetWrapper(LongPairConsumer<T> rangeConverter,
this.config = managedCursor.getManagedLedger().getConfig();
this.rangeConverter = rangeConverter;
this.rangeSet = config.isUnackedRangesOpenCacheSetEnabled()
? new OpenLongPairRangeSet<>(rangeConverter)
? new OpenLongPairRangeSet<>(rangeConverter, RoaringBitSet::new)
: new LongPairRangeSet.DefaultRangeSet<>(rangeConverter, rangeBoundConsumer);
this.enableMultiEntry = config.isPersistentUnackedRangesWithMultipleEntriesEnabled();
}
Expand Down
5 changes: 0 additions & 5 deletions pulsar-common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -246,11 +246,6 @@
<artifactId>awaitility</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.roaringbitmap</groupId>
<artifactId>RoaringBitmap</artifactId>
</dependency>
</dependencies>

<build>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@
import java.util.NavigableMap;
import java.util.concurrent.ConcurrentSkipListMap;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Supplier;
import javax.annotation.concurrent.NotThreadSafe;
import org.apache.commons.lang.mutable.MutableInt;
import org.roaringbitmap.RoaringBitSet;

/**
* A Concurrent set comprising zero or more ranges of type {@link LongPair}. This can be alternative of
Expand All @@ -48,6 +48,7 @@ public class OpenLongPairRangeSet<T extends Comparable<T>> implements LongPairRa

protected final NavigableMap<Long, BitSet> rangeBitSetMap = new ConcurrentSkipListMap<>();
private final LongPairConsumer<T> consumer;
private final Supplier<BitSet> bitSetSupplier;

// caching place-holder for cpu-optimization to avoid calculating ranges again
private volatile int cachedSize = 0;
Expand All @@ -56,7 +57,12 @@ public class OpenLongPairRangeSet<T extends Comparable<T>> implements LongPairRa
private volatile boolean updatedAfterCachedForToString = true;

public OpenLongPairRangeSet(LongPairConsumer<T> consumer) {
this(consumer, BitSet::new);
}

public OpenLongPairRangeSet(LongPairConsumer<T> consumer, Supplier<BitSet> bitSetSupplier) {
this.consumer = consumer;
this.bitSetSupplier = bitSetSupplier;
}

/**
Expand Down Expand Up @@ -405,7 +411,7 @@ private int getSafeEntry(long value) {
}

private BitSet createNewBitSet() {
return new RoaringBitSet();
return bitSetSupplier.get();
}

}

0 comments on commit 57a91b0

Please sign in to comment.