diff --git a/CHANGES.txt b/CHANGES.txt index e6b3d6bba8..623504659e 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,9 +1,9 @@ 4.0-alpha4 + * Update hppc library to version 0.8.1 (CASSANDRA-12995) * Limit the dependencies used by UDFs/UDAs (CASSANDRA-14737) * Make native_transport_max_concurrent_requests_in_bytes updatable (CASSANDRA-15519) * Cleanup and improvements to IndexInfo/ColumnIndex (CASSANDRA-15469) * Potential Overflow in DatabaseDescriptor Functions That Convert Between KB/MB & Bytes (CASSANDRA-15470) - 4.0-alpha3 * Restore monotonic read consistency guarantees for blocking read repair (CASSANDRA-14740) * Separate exceptions for CAS write timeout exceptions caused by contention and unkown result (CASSANDRA-15350) diff --git a/build.xml b/build.xml index ecc60f3457..9c4f5b0735 100644 --- a/build.xml +++ b/build.xml @@ -598,7 +598,7 @@ - + diff --git a/lib/hppc-0.5.4.jar b/lib/hppc-0.5.4.jar deleted file mode 100644 index d84b83b4e0..0000000000 Binary files a/lib/hppc-0.5.4.jar and /dev/null differ diff --git a/lib/hppc-0.8.1.jar b/lib/hppc-0.8.1.jar new file mode 100644 index 0000000000..39a7c24db6 Binary files /dev/null and b/lib/hppc-0.8.1.jar differ diff --git a/src/java/org/apache/cassandra/db/ConsistencyLevel.java b/src/java/org/apache/cassandra/db/ConsistencyLevel.java index e68561858f..91e83a7178 100644 --- a/src/java/org/apache/cassandra/db/ConsistencyLevel.java +++ b/src/java/org/apache/cassandra/db/ConsistencyLevel.java @@ -18,7 +18,7 @@ package org.apache.cassandra.db; -import com.carrotsearch.hppc.ObjectIntOpenHashMap; +import com.carrotsearch.hppc.ObjectIntHashMap; import org.apache.cassandra.locator.Endpoints; import org.apache.cassandra.schema.TableMetadata; import org.apache.cassandra.config.DatabaseDescriptor; @@ -98,18 +98,18 @@ public enum ConsistencyLevel return localQuorumFor(keyspace, DatabaseDescriptor.getLocalDataCenter()); } - public static ObjectIntOpenHashMap eachQuorumForRead(Keyspace keyspace) + public static ObjectIntHashMap eachQuorumForRead(Keyspace keyspace) { NetworkTopologyStrategy strategy = (NetworkTopologyStrategy) keyspace.getReplicationStrategy(); - ObjectIntOpenHashMap perDc = new ObjectIntOpenHashMap<>(((strategy.getDatacenters().size() + 1) * 4) / 3); + ObjectIntHashMap perDc = new ObjectIntHashMap<>(((strategy.getDatacenters().size() + 1) * 4) / 3); for (String dc : strategy.getDatacenters()) perDc.put(dc, ConsistencyLevel.localQuorumFor(keyspace, dc)); return perDc; } - public static ObjectIntOpenHashMap eachQuorumForWrite(Keyspace keyspace, Endpoints pendingWithDown) + public static ObjectIntHashMap eachQuorumForWrite(Keyspace keyspace, Endpoints pendingWithDown) { - ObjectIntOpenHashMap perDc = eachQuorumForRead(keyspace); + ObjectIntHashMap perDc = eachQuorumForRead(keyspace); addToCountPerDc(perDc, pendingWithDown, 1); return perDc; } diff --git a/src/java/org/apache/cassandra/index/sasi/analyzer/StandardAnalyzer.java b/src/java/org/apache/cassandra/index/sasi/analyzer/StandardAnalyzer.java index e1a4a44b04..cd8fedada7 100644 --- a/src/java/org/apache/cassandra/index/sasi/analyzer/StandardAnalyzer.java +++ b/src/java/org/apache/cassandra/index/sasi/analyzer/StandardAnalyzer.java @@ -37,7 +37,7 @@ import org.apache.cassandra.utils.ByteBufferUtil; import com.google.common.annotations.VisibleForTesting; import com.carrotsearch.hppc.IntObjectMap; -import com.carrotsearch.hppc.IntObjectOpenHashMap; +import com.carrotsearch.hppc.IntObjectHashMap; public class StandardAnalyzer extends AbstractAnalyzer { @@ -61,7 +61,7 @@ public class StandardAnalyzer extends AbstractAnalyzer KATAKANA(12), HANGUL(13); - private static final IntObjectMap TOKENS = new IntObjectOpenHashMap<>(); + private static final IntObjectMap TOKENS = new IntObjectHashMap<>(); static { diff --git a/src/java/org/apache/cassandra/index/sasi/disk/DynamicTokenTreeBuilder.java b/src/java/org/apache/cassandra/index/sasi/disk/DynamicTokenTreeBuilder.java index 2ddfd89ff8..0e906e20d0 100644 --- a/src/java/org/apache/cassandra/index/sasi/disk/DynamicTokenTreeBuilder.java +++ b/src/java/org/apache/cassandra/index/sasi/disk/DynamicTokenTreeBuilder.java @@ -23,7 +23,7 @@ import java.util.*; import org.apache.cassandra.utils.AbstractIterator; import org.apache.cassandra.utils.Pair; -import com.carrotsearch.hppc.LongOpenHashSet; +import com.carrotsearch.hppc.LongHashSet; import com.carrotsearch.hppc.LongSet; import com.carrotsearch.hppc.cursors.LongCursor; @@ -49,7 +49,7 @@ public class DynamicTokenTreeBuilder extends AbstractTokenTreeBuilder { LongSet found = tokens.get(token); if (found == null) - tokens.put(token, (found = new LongOpenHashSet(2))); + tokens.put(token, (found = new LongHashSet(2))); found.add(keyPosition); } @@ -70,7 +70,7 @@ public class DynamicTokenTreeBuilder extends AbstractTokenTreeBuilder { LongSet found = tokens.get(newEntry.getKey()); if (found == null) - tokens.put(newEntry.getKey(), (found = new LongOpenHashSet(4))); + tokens.put(newEntry.getKey(), (found = new LongHashSet(4))); for (LongCursor offset : newEntry.getValue()) found.add(offset.value); diff --git a/src/java/org/apache/cassandra/index/sasi/disk/TokenTree.java b/src/java/org/apache/cassandra/index/sasi/disk/TokenTree.java index c69ce00298..e510cdd80d 100644 --- a/src/java/org/apache/cassandra/index/sasi/disk/TokenTree.java +++ b/src/java/org/apache/cassandra/index/sasi/disk/TokenTree.java @@ -27,7 +27,7 @@ import org.apache.cassandra.index.sasi.utils.MappedBuffer; import org.apache.cassandra.index.sasi.utils.RangeIterator; import org.apache.cassandra.utils.MergeIterator; -import com.carrotsearch.hppc.LongOpenHashSet; +import com.carrotsearch.hppc.LongHashSet; import com.carrotsearch.hppc.LongSet; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Function; @@ -410,7 +410,7 @@ public class TokenTree public LongSet getOffsets() { - LongSet offsets = new LongOpenHashSet(4); + LongSet offsets = new LongHashSet(4); for (TokenInfo i : info) { for (long offset : i.fetchOffsets()) diff --git a/src/java/org/apache/cassandra/index/sasi/memory/KeyRangeIterator.java b/src/java/org/apache/cassandra/index/sasi/memory/KeyRangeIterator.java index a2f2c0e4f0..59d1122a6d 100644 --- a/src/java/org/apache/cassandra/index/sasi/memory/KeyRangeIterator.java +++ b/src/java/org/apache/cassandra/index/sasi/memory/KeyRangeIterator.java @@ -29,7 +29,7 @@ import org.apache.cassandra.index.sasi.utils.AbstractIterator; import org.apache.cassandra.index.sasi.utils.CombinedValue; import org.apache.cassandra.index.sasi.utils.RangeIterator; -import com.carrotsearch.hppc.LongOpenHashSet; +import com.carrotsearch.hppc.LongHashSet; import com.carrotsearch.hppc.LongSet; import com.google.common.collect.PeekingIterator; @@ -95,7 +95,7 @@ public class KeyRangeIterator extends RangeIterator public LongSet getOffsets() { - LongSet offsets = new LongOpenHashSet(4); + LongSet offsets = new LongHashSet(4); for (DecoratedKey key : keys) offsets.add((long) key.getToken().getTokenValue()); diff --git a/src/java/org/apache/cassandra/locator/AbstractReplicaCollection.java b/src/java/org/apache/cassandra/locator/AbstractReplicaCollection.java index 374afc6f6b..2ec555cc55 100644 --- a/src/java/org/apache/cassandra/locator/AbstractReplicaCollection.java +++ b/src/java/org/apache/cassandra/locator/AbstractReplicaCollection.java @@ -18,7 +18,7 @@ package org.apache.cassandra.locator; -import com.carrotsearch.hppc.ObjectIntOpenHashMap; +import com.carrotsearch.hppc.ObjectIntHashMap; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; import com.google.common.collect.Iterables; @@ -241,7 +241,7 @@ public abstract class AbstractReplicaCollection index in our list; this lets us share with subLists (or between Builder and snapshots) // since we only need to corroborate that the list index we find is within the bounds of our list // (if not, it's a shared map, and the key only occurs in one of our ancestors) - private final ObjectIntOpenHashMap map; + private final ObjectIntHashMap map; private Set keySet; private Set> entrySet; @@ -285,7 +285,7 @@ public abstract class AbstractReplicaCollection RF=5; 16*0.65 ==> RF=10 // use list capacity if empty, otherwise use actual list size this.toKey = toKey; - this.map = new ObjectIntOpenHashMap<>(list.size == 0 ? list.contents.length : list.size, 0.65f); + this.map = new ObjectIntHashMap<>(list.size == 0 ? list.contents.length : list.size, 0.65f); this.list = list; for (int i = list.begin ; i < list.begin + list.size ; ++i) { @@ -294,7 +294,7 @@ public abstract class AbstractReplicaCollection toKey, ObjectIntOpenHashMap map) + public ReplicaMap(ReplicaList list, Function toKey, ObjectIntHashMap map) { this.toKey = toKey; this.list = list; diff --git a/src/java/org/apache/cassandra/locator/ReplicaPlans.java b/src/java/org/apache/cassandra/locator/ReplicaPlans.java index 236706ae7a..436a9ed045 100644 --- a/src/java/org/apache/cassandra/locator/ReplicaPlans.java +++ b/src/java/org/apache/cassandra/locator/ReplicaPlans.java @@ -18,7 +18,7 @@ package org.apache.cassandra.locator; -import com.carrotsearch.hppc.ObjectIntOpenHashMap; +import com.carrotsearch.hppc.ObjectIntHashMap; import com.carrotsearch.hppc.cursors.ObjectIntCursor; import com.carrotsearch.hppc.cursors.ObjectObjectCursor; import com.google.common.annotations.VisibleForTesting; @@ -406,7 +406,7 @@ public class ReplicaPlans * soft-ensure that we reach QUORUM in all DCs we are able to, by writing to every node; * even if we don't wait for ACK, we have in both cases sent sufficient messages. */ - ObjectIntOpenHashMap requiredPerDc = eachQuorumForWrite(keyspace, liveAndDown.pending()); + ObjectIntHashMap requiredPerDc = eachQuorumForWrite(keyspace, liveAndDown.pending()); addToCountPerDc(requiredPerDc, live.natural().filter(Replica::isFull), -1); addToCountPerDc(requiredPerDc, live.pending(), -1); @@ -462,7 +462,7 @@ public class ReplicaPlans } else { - ObjectIntOpenHashMap requiredPerDc = eachQuorumForWrite(keyspace, liveAndDown.pending()); + ObjectIntHashMap requiredPerDc = eachQuorumForWrite(keyspace, liveAndDown.pending()); addToCountPerDc(requiredPerDc, contacts.snapshot(), -1); IEndpointSnitch snitch = DatabaseDescriptor.getEndpointSnitch(); for (Replica replica : filter(live.all(), r -> !contacts.contains(r))) @@ -530,7 +530,7 @@ public class ReplicaPlans private static > E contactForEachQuorumRead(Keyspace keyspace, E candidates) { assert keyspace.getReplicationStrategy() instanceof NetworkTopologyStrategy; - ObjectIntOpenHashMap perDc = eachQuorumForRead(keyspace); + ObjectIntHashMap perDc = eachQuorumForRead(keyspace); final IEndpointSnitch snitch = DatabaseDescriptor.getEndpointSnitch(); return candidates.filter(replica -> { diff --git a/src/java/org/apache/cassandra/locator/Replicas.java b/src/java/org/apache/cassandra/locator/Replicas.java index 9e6048a412..1b299cf589 100644 --- a/src/java/org/apache/cassandra/locator/Replicas.java +++ b/src/java/org/apache/cassandra/locator/Replicas.java @@ -23,8 +23,8 @@ import java.util.Collection; import java.util.List; import java.util.function.Predicate; -import com.carrotsearch.hppc.ObjectIntOpenHashMap; -import com.carrotsearch.hppc.ObjectObjectOpenHashMap; +import com.carrotsearch.hppc.ObjectIntHashMap; +import com.carrotsearch.hppc.ObjectObjectHashMap; import com.google.common.collect.Iterables; import org.apache.cassandra.config.DatabaseDescriptor; @@ -88,9 +88,9 @@ public class Replicas /** * count the number of full and transient replicas, separately, for each DC */ - public static ObjectObjectOpenHashMap countPerDc(Collection dataCenters, Iterable replicas) + public static ObjectObjectHashMap countPerDc(Collection dataCenters, Iterable replicas) { - ObjectObjectOpenHashMap perDc = new ObjectObjectOpenHashMap<>(dataCenters.size()); + ObjectObjectHashMap perDc = new ObjectObjectHashMap<>(dataCenters.size()); for (String dc: dataCenters) perDc.put(dc, new ReplicaCount()); @@ -106,7 +106,7 @@ public class Replicas /** * increment each of the map's DC entries for each matching replica provided */ - public static void addToCountPerDc(ObjectIntOpenHashMap perDc, Iterable replicas, int add) + public static void addToCountPerDc(ObjectIntHashMap perDc, Iterable replicas, int add) { IEndpointSnitch snitch = DatabaseDescriptor.getEndpointSnitch(); for (Replica replica : replicas) diff --git a/src/java/org/apache/cassandra/net/OutboundConnections.java b/src/java/org/apache/cassandra/net/OutboundConnections.java index 5f9190b5b6..c90090866d 100644 --- a/src/java/org/apache/cassandra/net/OutboundConnections.java +++ b/src/java/org/apache/cassandra/net/OutboundConnections.java @@ -27,7 +27,7 @@ import java.util.function.Function; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; -import com.carrotsearch.hppc.ObjectObjectOpenHashMap; +import com.carrotsearch.hppc.ObjectObjectHashMap; import io.netty.util.concurrent.Future; import org.apache.cassandra.config.Config; import org.apache.cassandra.gms.Gossiper; @@ -264,11 +264,11 @@ public class OutboundConnections } final MessagingService messagingService; - ObjectObjectOpenHashMap prevEndpointToCounts = new ObjectObjectOpenHashMap<>(); + ObjectObjectHashMap prevEndpointToCounts = new ObjectObjectHashMap<>(); private void closeUnusedSinceLastRun() { - ObjectObjectOpenHashMap curEndpointToCounts = new ObjectObjectOpenHashMap<>(); + ObjectObjectHashMap curEndpointToCounts = new ObjectObjectHashMap<>(); for (OutboundConnections connections : messagingService.channelManagers.values()) { Counts cur = new Counts( diff --git a/src/java/org/apache/cassandra/service/reads/repair/RowIteratorMergeListener.java b/src/java/org/apache/cassandra/service/reads/repair/RowIteratorMergeListener.java index fc4c3512d7..ac019da00f 100644 --- a/src/java/org/apache/cassandra/service/reads/repair/RowIteratorMergeListener.java +++ b/src/java/org/apache/cassandra/service/reads/repair/RowIteratorMergeListener.java @@ -26,7 +26,7 @@ import java.util.function.Consumer; import com.google.common.collect.Iterables; import com.google.common.collect.Maps; -import com.carrotsearch.hppc.ObjectIntOpenHashMap; +import com.carrotsearch.hppc.ObjectIntHashMap; import net.nicoulaj.compilecommand.annotations.Inline; import org.apache.cassandra.db.Clustering; import org.apache.cassandra.db.ClusteringBound; @@ -361,7 +361,7 @@ public class RowIteratorMergeListener> fullDiffRepair = repairs[repairs.length - 1].build(); Map mutations = Maps.newHashMapWithExpectedSize(writePlan.contacts().size()); - ObjectIntOpenHashMap sourceIds = new ObjectIntOpenHashMap<>(((repairs.length + 1) * 4) / 3); + ObjectIntHashMap sourceIds = new ObjectIntHashMap<>(((repairs.length + 1) * 4) / 3); for (int i = 0 ; i < readPlan.contacts().size() ; ++i) sourceIds.put(readPlan.contacts().get(i).endpoint(), 1 + i); @@ -383,4 +383,4 @@ public class RowIteratorMergeListener> readRepair.repairPartition(partitionKey, mutations, writePlan); } -} \ No newline at end of file +} diff --git a/test/burn/org/apache/cassandra/net/Verifier.java b/test/burn/org/apache/cassandra/net/Verifier.java index 8b48c9a094..219e613e23 100644 --- a/test/burn/org/apache/cassandra/net/Verifier.java +++ b/test/burn/org/apache/cassandra/net/Verifier.java @@ -31,9 +31,11 @@ import java.util.function.Consumer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.carrotsearch.hppc.LongObjectOpenHashMap; +import com.carrotsearch.hppc.LongObjectHashMap; +import com.carrotsearch.hppc.predicates.LongObjectPredicate; +import com.carrotsearch.hppc.procedures.LongObjectProcedure; +import com.carrotsearch.hppc.procedures.LongProcedure; import org.apache.cassandra.net.Verifier.ExpiredMessageEvent.ExpirationType; -import org.apache.cassandra.utils.ApproximateTime; import org.apache.cassandra.utils.concurrent.WaitQueue; import static java.util.concurrent.TimeUnit.*; @@ -559,7 +561,7 @@ public class Verifier } } - private final LongObjectOpenHashMap messages = new LongObjectOpenHashMap<>(); + private final LongObjectHashMap messages = new LongObjectHashMap<>(); // messages start here, but may enter in a haphazard (non-sequential) fashion; // ENQUEUE_START, ENQUEUE_END both take place here, with the latter imposing bounds on the out-of-order appearance of messages. @@ -667,7 +669,7 @@ public class Verifier // TODO: even 2s or 5s are unreasonable periods of time without _any_ movement on a message waiting to arrive // this seems to happen regularly on MacOS, but we should confirm this does not happen on Linux fail("Unreasonably long period spent waiting for sync (%dms)", NANOSECONDS.toMillis(now - lastEventAt)); - messages.forEach((k, v) -> { + messages.>forEach((k, v) -> { failinfo("%s", v); controller.fail(v.message.serializedSize(v.messagingVersion == 0 ? current_version : v.messagingVersion)); }); @@ -1232,14 +1234,14 @@ public class Verifier } } - private static MessageState remove(long messageId, Queue queue, LongObjectOpenHashMap lookup) + private static MessageState remove(long messageId, Queue queue, LongObjectHashMap lookup) { MessageState m = lookup.remove(messageId); queue.remove(m); return m; } - private static void clearFirst(int count, Queue queue, LongObjectOpenHashMap lookup) + private static void clearFirst(int count, Queue queue, LongObjectHashMap lookup) { if (count > 0) { @@ -1249,7 +1251,7 @@ public class Verifier } } - private static void clear(Queue queue, LongObjectOpenHashMap lookup) + private static void clear(Queue queue, LongObjectHashMap lookup) { if (!queue.isEmpty()) clearFirst(queue.size(), queue, lookup); diff --git a/test/unit/org/apache/cassandra/index/sasi/SASIIndexTest.java b/test/unit/org/apache/cassandra/index/sasi/SASIIndexTest.java index e3ba45b44c..0be05b901a 100644 --- a/test/unit/org/apache/cassandra/index/sasi/SASIIndexTest.java +++ b/test/unit/org/apache/cassandra/index/sasi/SASIIndexTest.java @@ -1113,7 +1113,7 @@ public class SASIIndexTest } while (updates.get() < writeCount); - // to make sure that after all of the right are done we can read all "count" worth of rows + // to make sure that after all of the writes are done we can read all "count" worth of rows Set rows = getPaged(store, 100, buildExpression(firstName, Operator.LIKE_CONTAINS, UTF8Type.instance.decompose("a")), buildExpression(age, Operator.EQ, Int32Type.instance.decompose(26))); diff --git a/test/unit/org/apache/cassandra/index/sasi/disk/TokenTreeTest.java b/test/unit/org/apache/cassandra/index/sasi/disk/TokenTreeTest.java index 72b9e0d338..4339a62438 100644 --- a/test/unit/org/apache/cassandra/index/sasi/disk/TokenTreeTest.java +++ b/test/unit/org/apache/cassandra/index/sasi/disk/TokenTreeTest.java @@ -47,7 +47,7 @@ import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import org.apache.commons.lang3.builder.HashCodeBuilder; -import com.carrotsearch.hppc.LongOpenHashSet; +import com.carrotsearch.hppc.LongHashSet; import com.carrotsearch.hppc.LongSet; import com.carrotsearch.hppc.cursors.LongCursor; import com.google.common.base.Function; @@ -56,18 +56,26 @@ public class TokenTreeTest { private static final Function KEY_CONVERTER = new KeyConverter(); + static LongSet singleOffset = new LongHashSet(); + static LongSet bigSingleOffset = new LongHashSet(); + static LongSet shortPackableCollision = new LongHashSet(); + static LongSet intPackableCollision = new LongHashSet(); + static LongSet multiCollision = new LongHashSet(); + static LongSet unpackableCollision = new LongHashSet(); + @BeforeClass public static void setupDD() { DatabaseDescriptor.daemonInitialization(); + singleOffset.add(1); + bigSingleOffset.add(2147521562L); + shortPackableCollision.add(2L); shortPackableCollision.add(3L); + intPackableCollision.add(6L); intPackableCollision.add(((long) Short.MAX_VALUE) + 1); + multiCollision.add(3L); multiCollision.add(4L); multiCollision.add(5L); + unpackableCollision.add(((long) Short.MAX_VALUE) + 1); unpackableCollision.add(((long) Short.MAX_VALUE) + 2); } - static LongSet singleOffset = new LongOpenHashSet() {{ add(1); }}; - static LongSet bigSingleOffset = new LongOpenHashSet() {{ add(2147521562L); }}; - static LongSet shortPackableCollision = new LongOpenHashSet() {{ add(2L); add(3L); }}; // can pack two shorts - static LongSet intPackableCollision = new LongOpenHashSet() {{ add(6L); add(((long) Short.MAX_VALUE) + 1); }}; // can pack int & short - static LongSet multiCollision = new LongOpenHashSet() {{ add(3L); add(4L); add(5L); }}; // can't pack - static LongSet unpackableCollision = new LongOpenHashSet() {{ add(((long) Short.MAX_VALUE) + 1); add(((long) Short.MAX_VALUE) + 2); }}; // can't pack + final static SortedMap simpleTokenMap = new TreeMap() {{ @@ -422,7 +430,6 @@ public class TokenTreeTest LongSet found = result.getOffsets(); Assert.assertEquals(entry.getValue(), found); - } } @@ -609,7 +616,7 @@ public class TokenTreeTest private static LongSet convert(long... values) { - LongSet result = new LongOpenHashSet(values.length); + LongSet result = new LongHashSet(values.length); for (long v : values) result.add(v); @@ -640,7 +647,7 @@ public class TokenTreeTest {{ for (long i = minToken; i <= maxToken; i++) { - LongSet offsetSet = new LongOpenHashSet(); + LongSet offsetSet = new LongHashSet(); offsetSet.add(i); put(i, offsetSet); } diff --git a/test/unit/org/apache/cassandra/index/sasi/utils/LongIterator.java b/test/unit/org/apache/cassandra/index/sasi/utils/LongIterator.java index 205d28f9a8..e7ff5b89fe 100644 --- a/test/unit/org/apache/cassandra/index/sasi/utils/LongIterator.java +++ b/test/unit/org/apache/cassandra/index/sasi/utils/LongIterator.java @@ -23,7 +23,7 @@ import java.util.Collections; import java.util.Iterator; import java.util.List; -import com.carrotsearch.hppc.LongOpenHashSet; +import com.carrotsearch.hppc.LongHashSet; import com.carrotsearch.hppc.LongSet; import org.apache.cassandra.db.DecoratedKey; import org.apache.cassandra.index.sasi.disk.Token; @@ -84,7 +84,7 @@ public class LongIterator extends RangeIterator @Override public LongSet getOffsets() { - return new LongOpenHashSet(4); + return new LongHashSet(4); } @Override diff --git a/test/unit/org/apache/cassandra/index/sasi/utils/RangeIntersectionIteratorTest.java b/test/unit/org/apache/cassandra/index/sasi/utils/RangeIntersectionIteratorTest.java index 4dc9e3f1e3..e796240689 100644 --- a/test/unit/org/apache/cassandra/index/sasi/utils/RangeIntersectionIteratorTest.java +++ b/test/unit/org/apache/cassandra/index/sasi/utils/RangeIntersectionIteratorTest.java @@ -27,7 +27,7 @@ import org.apache.cassandra.index.sasi.utils.RangeIntersectionIterator.LookupInt import org.apache.cassandra.index.sasi.utils.RangeIntersectionIterator.BounceIntersectionIterator; import org.apache.cassandra.io.util.FileUtils; -import com.carrotsearch.hppc.LongOpenHashSet; +import com.carrotsearch.hppc.LongHashSet; import com.carrotsearch.hppc.LongSet; import org.junit.Assert; @@ -387,7 +387,7 @@ public class RangeIntersectionIteratorTest for (int i = 0; i < ranges.length; i++) { int rangeSize = random.nextInt(16, 512); - LongSet range = new LongOpenHashSet(rangeSize); + LongSet range = new LongHashSet(rangeSize); for (int j = 0; j < rangeSize; j++) range.add(random.nextLong(0, 100));