You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jj...@apache.org on 2017/12/03 07:31:09 UTC
cassandra git commit: Presize collections
Repository: cassandra
Updated Branches:
refs/heads/trunk b04e4136f -> 95b43b195
Presize collections
Patch by Dave Brosius; Reviewed by Jeff Jirsa for CASSANDRA-13760
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/95b43b19
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/95b43b19
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/95b43b19
Branch: refs/heads/trunk
Commit: 95b43b195e4074533100f863344c182a118a8b6c
Parents: b04e413
Author: Jeff Jirsa <jj...@apple.com>
Authored: Wed Aug 30 20:43:56 2017 -0700
Committer: Jeff Jirsa <jj...@apple.com>
Committed: Sat Dec 2 23:30:41 2017 -0800
----------------------------------------------------------------------
src/java/org/apache/cassandra/auth/FunctionResource.java | 2 +-
src/java/org/apache/cassandra/cql3/Relation.java | 2 +-
.../apache/cassandra/cql3/statements/SelectStatement.java | 9 +++++----
.../apache/cassandra/db/AbstractReadCommandBuilder.java | 4 +++-
.../apache/cassandra/db/ColumnFamilyStoreCQLHelper.java | 4 ++--
src/java/org/apache/cassandra/db/Directories.java | 6 ++++--
src/java/org/apache/cassandra/db/commitlog/CommitLog.java | 7 ++++---
.../db/compaction/AbstractCompactionStrategy.java | 4 ++--
.../apache/cassandra/db/compaction/CompactionManager.java | 2 +-
.../db/compaction/CompactionStrategyManager.java | 10 ++++++----
.../db/compaction/DateTieredCompactionStrategy.java | 2 +-
.../db/compaction/LeveledCompactionStrategy.java | 4 ++--
src/java/org/apache/cassandra/db/view/ViewManager.java | 7 +++++--
.../org/apache/cassandra/dht/ByteOrderedPartitioner.java | 6 ++++--
.../apache/cassandra/gms/GossipDigestSynVerbHandler.java | 4 +++-
.../org/apache/cassandra/hadoop/cql3/CqlInputFormat.java | 9 +++++----
.../cassandra/index/sasi/disk/PerSSTableIndexWriter.java | 3 ++-
.../apache/cassandra/index/sasi/plan/QueryController.java | 5 +++--
src/java/org/apache/cassandra/io/sstable/Descriptor.java | 2 +-
src/java/org/apache/cassandra/io/sstable/SSTable.java | 2 +-
src/java/org/apache/cassandra/repair/RepairJobDesc.java | 2 +-
.../cassandra/repair/SystemDistributedKeyspace.java | 2 +-
.../repair/consistent/PendingAntiCompaction.java | 5 +++--
src/java/org/apache/cassandra/schema/Indexes.java | 3 ++-
src/java/org/apache/cassandra/schema/Types.java | 2 +-
src/java/org/apache/cassandra/utils/concurrent/Ref.java | 2 +-
26 files changed, 65 insertions(+), 45 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95b43b19/src/java/org/apache/cassandra/auth/FunctionResource.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/auth/FunctionResource.java b/src/java/org/apache/cassandra/auth/FunctionResource.java
index f9f51d5..2c09c05 100644
--- a/src/java/org/apache/cassandra/auth/FunctionResource.java
+++ b/src/java/org/apache/cassandra/auth/FunctionResource.java
@@ -150,7 +150,7 @@ public class FunctionResource implements IResource
if (keyspace == null)
throw new InvalidRequestException("In this context function name must be " +
"explictly qualified by a keyspace");
- List<AbstractType<?>> abstractTypes = new ArrayList<>();
+ List<AbstractType<?>> abstractTypes = new ArrayList<>(argTypes.size());
for (CQL3Type.Raw cqlType : argTypes)
abstractTypes.add(cqlType.prepare(keyspace).getType());
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95b43b19/src/java/org/apache/cassandra/cql3/Relation.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/Relation.java b/src/java/org/apache/cassandra/cql3/Relation.java
index 1d27874..0dcb3fa 100644
--- a/src/java/org/apache/cassandra/cql3/Relation.java
+++ b/src/java/org/apache/cassandra/cql3/Relation.java
@@ -243,7 +243,7 @@ public abstract class Relation
if (raws == null)
return null;
- List<Term> terms = new ArrayList<>();
+ List<Term> terms = new ArrayList<>(raws.size());
for (int i = 0, m = raws.size(); i < m; i++)
terms.add(toTerm(receivers, raws.get(i), keyspace, boundNames));
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95b43b19/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
index 84fef5e..3754ee6 100644
--- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
@@ -21,6 +21,7 @@ import java.nio.ByteBuffer;
import java.util.*;
import com.google.common.base.MoreObjects;
+import com.google.common.collect.Maps;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -1108,7 +1109,7 @@ public class SelectStatement implements CQLStatement
* @param metadata the table metadata
* @param selection the selection
* @param restrictions the restrictions
- * @param isDistinct <code>true</code> if the query is a DISTINCT one.
+ * @param isDistinct <code>true</code> if the query is a DISTINCT one.
* @return the <code>AggregationSpecification</code>s used to make the aggregates
*/
private AggregationSpecification getAggregationSpecification(TableMetadata metadata,
@@ -1170,8 +1171,8 @@ public class SelectStatement implements CQLStatement
Map<ColumnIdentifier, Integer> orderingIndexes = getOrderingIndex(metadata, selection, orderingColumns);
- List<Integer> idToSort = new ArrayList<Integer>();
- List<Comparator<ByteBuffer>> sorters = new ArrayList<Comparator<ByteBuffer>>();
+ List<Integer> idToSort = new ArrayList<Integer>(orderingColumns.size());
+ List<Comparator<ByteBuffer>> sorters = new ArrayList<Comparator<ByteBuffer>>(orderingColumns.size());
for (ColumnMetadata orderingColumn : orderingColumns.keySet())
{
@@ -1186,7 +1187,7 @@ public class SelectStatement implements CQLStatement
Selection selection,
Map<ColumnMetadata, Boolean> orderingColumns)
{
- Map<ColumnIdentifier, Integer> orderingIndexes = new HashMap<>();
+ Map<ColumnIdentifier, Integer> orderingIndexes = Maps.newHashMapWithExpectedSize(orderingColumns.size());
for (ColumnMetadata def : orderingColumns.keySet())
{
int index = selection.getResultSetIndex(def);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95b43b19/src/java/org/apache/cassandra/db/AbstractReadCommandBuilder.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/AbstractReadCommandBuilder.java b/src/java/org/apache/cassandra/db/AbstractReadCommandBuilder.java
index 481e906..4df1bd3 100644
--- a/src/java/org/apache/cassandra/db/AbstractReadCommandBuilder.java
+++ b/src/java/org/apache/cassandra/db/AbstractReadCommandBuilder.java
@@ -21,6 +21,8 @@ package org.apache.cassandra.db;
import java.nio.ByteBuffer;
import java.util.*;
+import com.google.common.collect.Sets;
+
import org.apache.cassandra.schema.ColumnMetadata;
import org.apache.cassandra.schema.TableMetadata;
import org.apache.cassandra.cql3.ColumnIdentifier;
@@ -121,7 +123,7 @@ public abstract class AbstractReadCommandBuilder
public AbstractReadCommandBuilder columns(String... columns)
{
if (this.columns == null)
- this.columns = new HashSet<>();
+ this.columns = Sets.newHashSetWithExpectedSize(columns.length);
for (String column : columns)
this.columns.add(ColumnIdentifier.getInterned(column, true));
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95b43b19/src/java/org/apache/cassandra/db/ColumnFamilyStoreCQLHelper.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStoreCQLHelper.java b/src/java/org/apache/cassandra/db/ColumnFamilyStoreCQLHelper.java
index d79fa0f..740ef3f 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStoreCQLHelper.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStoreCQLHelper.java
@@ -217,7 +217,7 @@ public class ColumnFamilyStoreCQLHelper
resolveUserType((UserType) type, typeSet, types);
}
- List<String> typeStrings = new ArrayList<>();
+ List<String> typeStrings = new ArrayList<>(types.size());
for (AbstractType type: types)
typeStrings.add(toCQL((UserType) type));
return typeStrings;
@@ -250,7 +250,7 @@ public class ColumnFamilyStoreCQLHelper
@VisibleForTesting
public static List<String> getIndexesAsCQL(TableMetadata metadata)
{
- List<String> indexes = new ArrayList<>();
+ List<String> indexes = new ArrayList<>(metadata.indexes.size());
for (IndexMetadata indexMetadata: metadata.indexes)
indexes.add(toCQL(metadata, indexMetadata));
return indexes;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95b43b19/src/java/org/apache/cassandra/db/Directories.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/Directories.java b/src/java/org/apache/cassandra/db/Directories.java
index 88d909d..514f8fd 100644
--- a/src/java/org/apache/cassandra/db/Directories.java
+++ b/src/java/org/apache/cassandra/db/Directories.java
@@ -29,6 +29,7 @@ import java.util.function.BiPredicate;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
+import com.google.common.collect.Maps;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@@ -778,8 +779,9 @@ public class Directories
*/
public Map<String, Pair<Long, Long>> getSnapshotDetails()
{
- final Map<String, Pair<Long, Long>> snapshotSpaceMap = new HashMap<>();
- for (File snapshot : listSnapshots())
+ List<File> snapshots = listSnapshots();
+ final Map<String, Pair<Long, Long>> snapshotSpaceMap = Maps.newHashMapWithExpectedSize(snapshots.size());
+ for (File snapshot : snapshots)
{
final long sizeOnDisk = FileUtils.folderSize(snapshot);
final long trueSize = getTrueAllocatedSizeIn(snapshot);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95b43b19/src/java/org/apache/cassandra/db/commitlog/CommitLog.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/commitlog/CommitLog.java b/src/java/org/apache/cassandra/db/commitlog/CommitLog.java
index 3a7c792..68075ac 100644
--- a/src/java/org/apache/cassandra/db/commitlog/CommitLog.java
+++ b/src/java/org/apache/cassandra/db/commitlog/CommitLog.java
@@ -146,7 +146,7 @@ public class CommitLog implements CommitLogMBean
// submit all files for this segment manager for archiving prior to recovery - CASSANDRA-6904
// The files may have already been archived by normal CommitLog operation. This may cause errors in this
- // archiving pass, which we should not treat as serious.
+ // archiving pass, which we should not treat as serious.
for (File file : new File(segmentManager.storageDirectory).listFiles(unmanagedFilesFilter))
{
archiver.maybeArchive(file.getPath(), file.getName());
@@ -375,8 +375,9 @@ public class CommitLog implements CommitLogMBean
public List<String> getActiveSegmentNames()
{
- List<String> segmentNames = new ArrayList<>();
- for (CommitLogSegment seg : segmentManager.getActiveSegments())
+ Collection<CommitLogSegment> segments = segmentManager.getActiveSegments();
+ List<String> segmentNames = new ArrayList<>(segments.size());
+ for (CommitLogSegment seg : segments)
segmentNames.add(seg.getName());
return segmentNames;
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95b43b19/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java b/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java
index f1f42a7..0a07ce6 100644
--- a/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java
+++ b/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java
@@ -539,7 +539,7 @@ public abstract class AbstractCompactionStrategy
Collections.sort(sortedSSTablesToGroup, SSTableReader.sstableComparator);
Collection<Collection<SSTableReader>> groupedSSTables = new ArrayList<>();
- Collection<SSTableReader> currGroup = new ArrayList<>();
+ Collection<SSTableReader> currGroup = new ArrayList<>(groupSize);
for (SSTableReader sstable : sortedSSTablesToGroup)
{
@@ -547,7 +547,7 @@ public abstract class AbstractCompactionStrategy
if (currGroup.size() == groupSize)
{
groupedSSTables.add(currGroup);
- currGroup = new ArrayList<>();
+ currGroup = new ArrayList<>(groupSize);
}
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95b43b19/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
index a615c03..9b1997f 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
@@ -809,7 +809,7 @@ public class CompactionManager implements CompactionManagerMBean
descriptors.put(cfs, cfs.getDirectories().find(new File(filename.trim()).getName()));
}
- List<Future<?>> futures = new ArrayList<>();
+ List<Future<?>> futures = new ArrayList<>(descriptors.size());
int nowInSec = FBUtilities.nowInSeconds();
for (ColumnFamilyStore cfs : descriptors.keySet())
futures.add(submitUserDefined(cfs, descriptors.get(cfs), getDefaultGcBefore(cfs, nowInSec)));
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95b43b19/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java b/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java
index 1b3ddb5..0260bb8 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java
@@ -725,11 +725,13 @@ public class CompactionStrategyManager implements INotificationConsumer
{
assert repaired.size() == unrepaired.size();
assert repaired.size() == pendingRepairs.size();
- List<Set<SSTableReader>> pendingSSTables = new ArrayList<>();
- List<Set<SSTableReader>> repairedSSTables = new ArrayList<>();
- List<Set<SSTableReader>> unrepairedSSTables = new ArrayList<>();
- for (int i = 0; i < repaired.size(); i++)
+ int numRepaired = repaired.size();
+ List<Set<SSTableReader>> pendingSSTables = new ArrayList<>(numRepaired);
+ List<Set<SSTableReader>> repairedSSTables = new ArrayList<>(numRepaired);
+ List<Set<SSTableReader>> unrepairedSSTables = new ArrayList<>(numRepaired);
+
+ for (int i = 0; i < numRepaired; i++)
{
pendingSSTables.add(new HashSet<>());
repairedSSTables.add(new HashSet<>());
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95b43b19/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java b/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java
index 49fa0b6..2c5b3e8 100644
--- a/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java
+++ b/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java
@@ -461,7 +461,7 @@ public class DateTieredCompactionStrategy extends AbstractCompactionStrategy
@Override
public Collection<Collection<SSTableReader>> groupSSTablesForAntiCompaction(Collection<SSTableReader> sstablesToGroup)
{
- Collection<Collection<SSTableReader>> groups = new ArrayList<>();
+ Collection<Collection<SSTableReader>> groups = new ArrayList<>(sstablesToGroup.size());
for (SSTableReader sstable : sstablesToGroup)
{
groups.add(Collections.singleton(sstable));
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95b43b19/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java b/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java
index 4285424..1c40a6a 100644
--- a/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java
+++ b/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java
@@ -235,14 +235,14 @@ public class LeveledCompactionStrategy extends AbstractCompactionStrategy
for (Collection<SSTableReader> levelOfSSTables : sstablesByLevel.values())
{
- Collection<SSTableReader> currGroup = new ArrayList<>();
+ Collection<SSTableReader> currGroup = new ArrayList<>(groupSize);
for (SSTableReader sstable : levelOfSSTables)
{
currGroup.add(sstable);
if (currGroup.size() == groupSize)
{
groupedSSTables.add(currGroup);
- currGroup = new ArrayList<>();
+ currGroup = new ArrayList<>(groupSize);
}
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95b43b19/src/java/org/apache/cassandra/db/view/ViewManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/view/ViewManager.java b/src/java/org/apache/cassandra/db/view/ViewManager.java
index 8506d82..8d12349 100644
--- a/src/java/org/apache/cassandra/db/view/ViewManager.java
+++ b/src/java/org/apache/cassandra/db/view/ViewManager.java
@@ -22,6 +22,7 @@ import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.locks.Lock;
+import com.google.common.collect.Maps;
import com.google.common.util.concurrent.Striped;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -32,6 +33,7 @@ import org.apache.cassandra.schema.ViewMetadata;
import org.apache.cassandra.db.*;
import org.apache.cassandra.db.partitions.*;
import org.apache.cassandra.repair.SystemDistributedKeyspace;
+import org.apache.cassandra.schema.Views;
import org.apache.cassandra.service.StorageService;
/**
@@ -95,8 +97,9 @@ public class ViewManager
public void reload(boolean buildAllViews)
{
- Map<String, ViewMetadata> newViewsByName = new HashMap<>();
- for (ViewMetadata definition : keyspace.getMetadata().views)
+ Views views = keyspace.getMetadata().views;
+ Map<String, ViewMetadata> newViewsByName = Maps.newHashMapWithExpectedSize(views.size());
+ for (ViewMetadata definition : views)
{
newViewsByName.put(definition.name, definition);
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95b43b19/src/java/org/apache/cassandra/dht/ByteOrderedPartitioner.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/dht/ByteOrderedPartitioner.java b/src/java/org/apache/cassandra/dht/ByteOrderedPartitioner.java
index ff7f2f7..08088f7 100644
--- a/src/java/org/apache/cassandra/dht/ByteOrderedPartitioner.java
+++ b/src/java/org/apache/cassandra/dht/ByteOrderedPartitioner.java
@@ -43,6 +43,8 @@ import java.util.Map;
import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;
+import com.google.common.collect.Maps;
+
public class ByteOrderedPartitioner implements IPartitioner
{
public static final BytesToken MINIMUM = new BytesToken(ArrayUtils.EMPTY_BYTE_ARRAY);
@@ -219,7 +221,7 @@ public class ByteOrderedPartitioner implements IPartitioner
return new BytesToken(buffer);
}
- private final Token.TokenFactory tokenFactory = new Token.TokenFactory()
+ private final Token.TokenFactory tokenFactory = new Token.TokenFactory()
{
public ByteBuffer toByteArray(Token token)
{
@@ -273,7 +275,7 @@ public class ByteOrderedPartitioner implements IPartitioner
public Map<Token, Float> describeOwnership(List<Token> sortedTokens)
{
// allTokens will contain the count and be returned, sorted_ranges is shorthand for token<->token math.
- Map<Token, Float> allTokens = new HashMap<Token, Float>();
+ Map<Token, Float> allTokens = Maps.newHashMapWithExpectedSize(sortedTokens.size());
List<Range<Token>> sortedRanges = new ArrayList<Range<Token>>(sortedTokens.size());
// this initializes the counts to 0 and calcs the ranges in order.
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95b43b19/src/java/org/apache/cassandra/gms/GossipDigestSynVerbHandler.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/gms/GossipDigestSynVerbHandler.java b/src/java/org/apache/cassandra/gms/GossipDigestSynVerbHandler.java
index 6d0afa2..ddfafc9 100644
--- a/src/java/org/apache/cassandra/gms/GossipDigestSynVerbHandler.java
+++ b/src/java/org/apache/cassandra/gms/GossipDigestSynVerbHandler.java
@@ -20,6 +20,8 @@ package org.apache.cassandra.gms;
import java.net.InetAddress;
import java.util.*;
+import com.google.common.collect.Maps;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -121,7 +123,7 @@ public class GossipDigestSynVerbHandler implements IVerbHandler<GossipDigestSyn>
private void doSort(List<GossipDigest> gDigestList)
{
/* Construct a map of endpoint to GossipDigest. */
- Map<InetAddress, GossipDigest> epToDigestMap = new HashMap<InetAddress, GossipDigest>();
+ Map<InetAddress, GossipDigest> epToDigestMap = Maps.newHashMapWithExpectedSize(gDigestList.size());
for (GossipDigest gDigest : gDigestList)
{
epToDigestMap.put(gDigest.getEndpoint(), gDigest);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95b43b19/src/java/org/apache/cassandra/hadoop/cql3/CqlInputFormat.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/hadoop/cql3/CqlInputFormat.java b/src/java/org/apache/cassandra/hadoop/cql3/CqlInputFormat.java
index 9259042..eae1fa2 100644
--- a/src/java/org/apache/cassandra/hadoop/cql3/CqlInputFormat.java
+++ b/src/java/org/apache/cassandra/hadoop/cql3/CqlInputFormat.java
@@ -28,6 +28,7 @@ import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Row;
import com.datastax.driver.core.Session;
import com.datastax.driver.core.TokenRange;
+import com.google.common.collect.Maps;
import org.apache.cassandra.schema.SchemaConstants;
import org.apache.hadoop.conf.Configuration;
@@ -50,7 +51,7 @@ import static java.util.stream.Collectors.toMap;
/**
* Hadoop InputFormat allowing map/reduce against Cassandra rows within one ColumnFamily.
*
- * At minimum, you need to set the KS and CF in your Hadoop job Configuration.
+ * At minimum, you need to set the KS and CF in your Hadoop job Configuration.
* The ConfigHelper class is provided to make this
* simple:
* ConfigHelper.setInputColumnFamily
@@ -62,10 +63,10 @@ import static java.util.stream.Collectors.toMap;
* If no value is provided for InputSplitSizeInMb, we default to using InputSplitSize.
*
* CQLConfigHelper.setInputCQLPageRowSize. The default page row size is 1000. You
- * should set it to "as big as possible, but no bigger." It set the LIMIT for the CQL
+ * should set it to "as big as possible, but no bigger." It set the LIMIT for the CQL
* query, so you need set it big enough to minimize the network overhead, and also
* not too big to avoid out of memory issue.
- *
+ *
* other native protocol connection parameters in CqlConfigHelper
*/
public class CqlInputFormat extends org.apache.hadoop.mapreduce.InputFormat<Long, Row> implements org.apache.hadoop.mapred.InputFormat<Long, Row>
@@ -254,7 +255,7 @@ public class CqlInputFormat extends org.apache.hadoop.mapreduce.InputFormat<Long
}
List<TokenRange> splitRanges = tokenRange.splitEvenly(splitCount);
- Map<TokenRange, Long> rangesWithLength = new HashMap<>();
+ Map<TokenRange, Long> rangesWithLength = Maps.newHashMapWithExpectedSize(splitRanges.size());
for (TokenRange range : splitRanges)
rangesWithLength.put(range, partitionCount/splitCount);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95b43b19/src/java/org/apache/cassandra/index/sasi/disk/PerSSTableIndexWriter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/index/sasi/disk/PerSSTableIndexWriter.java b/src/java/org/apache/cassandra/index/sasi/disk/PerSSTableIndexWriter.java
index a63c9a2..b1ce521 100644
--- a/src/java/org/apache/cassandra/index/sasi/disk/PerSSTableIndexWriter.java
+++ b/src/java/org/apache/cassandra/index/sasi/disk/PerSSTableIndexWriter.java
@@ -45,6 +45,7 @@ import org.apache.cassandra.utils.FBUtilities;
import org.apache.cassandra.utils.Pair;
import com.google.common.annotations.VisibleForTesting;
+import com.google.common.collect.Maps;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.Uninterruptibles;
@@ -96,7 +97,7 @@ public class PerSSTableIndexWriter implements SSTableFlushObserver
this.keyValidator = keyValidator;
this.descriptor = descriptor;
this.source = source;
- this.indexes = new HashMap<>();
+ this.indexes = Maps.newHashMapWithExpectedSize(supportedIndexes.size());
for (Map.Entry<ColumnMetadata, ColumnIndex> entry : supportedIndexes.entrySet())
indexes.put(entry.getKey(), newIndex(entry.getValue()));
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95b43b19/src/java/org/apache/cassandra/index/sasi/plan/QueryController.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/index/sasi/plan/QueryController.java b/src/java/org/apache/cassandra/index/sasi/plan/QueryController.java
index c6aa7ee..db16c52 100644
--- a/src/java/org/apache/cassandra/index/sasi/plan/QueryController.java
+++ b/src/java/org/apache/cassandra/index/sasi/plan/QueryController.java
@@ -136,9 +136,10 @@ public class QueryController
? RangeUnionIterator.<Long, Token>builder()
: RangeIntersectionIterator.<Long, Token>builder();
- List<RangeIterator<Long, Token>> perIndexUnions = new ArrayList<>();
+ Set<Map.Entry<Expression, Set<SSTableIndex>>> view = getView(op, expressions).entrySet();
+ List<RangeIterator<Long, Token>> perIndexUnions = new ArrayList<>(view.size());
- for (Map.Entry<Expression, Set<SSTableIndex>> e : getView(op, expressions).entrySet())
+ for (Map.Entry<Expression, Set<SSTableIndex>> e : view)
{
@SuppressWarnings("resource") // RangeIterators are closed by releaseIndexes
RangeIterator<Long, Token> index = TermIterator.build(e.getKey(), e.getValue());
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95b43b19/src/java/org/apache/cassandra/io/sstable/Descriptor.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/sstable/Descriptor.java b/src/java/org/apache/cassandra/io/sstable/Descriptor.java
index 36943ff..3e4ba51 100644
--- a/src/java/org/apache/cassandra/io/sstable/Descriptor.java
+++ b/src/java/org/apache/cassandra/io/sstable/Descriptor.java
@@ -150,10 +150,10 @@ public class Descriptor
/** Return any temporary files found in the directory */
public List<File> getTemporaryFiles()
{
- List<File> ret = new ArrayList<>();
File[] tmpFiles = directory.listFiles((dir, name) ->
name.endsWith(Descriptor.TMP_EXT));
+ List<File> ret = new ArrayList<>(tmpFiles.length);
for (File tmpFile : tmpFiles)
ret.add(tmpFile);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95b43b19/src/java/org/apache/cassandra/io/sstable/SSTable.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTable.java b/src/java/org/apache/cassandra/io/sstable/SSTable.java
index f4d3706..40f8223 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTable.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTable.java
@@ -170,7 +170,7 @@ public abstract class SSTable
public List<String> getAllFilePaths()
{
- List<String> ret = new ArrayList<>();
+ List<String> ret = new ArrayList<>(components.size());
for (Component component : components)
ret.add(descriptor.filenameFor(component));
return ret;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95b43b19/src/java/org/apache/cassandra/repair/RepairJobDesc.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/repair/RepairJobDesc.java b/src/java/org/apache/cassandra/repair/RepairJobDesc.java
index 8f70e00..7e7de07 100644
--- a/src/java/org/apache/cassandra/repair/RepairJobDesc.java
+++ b/src/java/org/apache/cassandra/repair/RepairJobDesc.java
@@ -122,7 +122,7 @@ public class RepairJobDesc
String columnFamily = in.readUTF();
int nRanges = in.readInt();
- Collection<Range<Token>> ranges = new ArrayList<>();
+ Collection<Range<Token>> ranges = new ArrayList<>(nRanges);
Range<Token> range;
for (int i = 0; i < nRanges; i++)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95b43b19/src/java/org/apache/cassandra/repair/SystemDistributedKeyspace.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/repair/SystemDistributedKeyspace.java b/src/java/org/apache/cassandra/repair/SystemDistributedKeyspace.java
index 6ebd756..3770621 100644
--- a/src/java/org/apache/cassandra/repair/SystemDistributedKeyspace.java
+++ b/src/java/org/apache/cassandra/repair/SystemDistributedKeyspace.java
@@ -304,7 +304,7 @@ public final class SystemDistributedKeyspace
{
try
{
- List<ByteBuffer> valueList = new ArrayList<>();
+ List<ByteBuffer> valueList = new ArrayList<>(values.length);
for (String v : values)
{
valueList.add(bytes(v));
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95b43b19/src/java/org/apache/cassandra/repair/consistent/PendingAntiCompaction.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/repair/consistent/PendingAntiCompaction.java b/src/java/org/apache/cassandra/repair/consistent/PendingAntiCompaction.java
index 70251f6..dc3b45d 100644
--- a/src/java/org/apache/cassandra/repair/consistent/PendingAntiCompaction.java
+++ b/src/java/org/apache/cassandra/repair/consistent/PendingAntiCompaction.java
@@ -186,8 +186,9 @@ public class PendingAntiCompaction
public ListenableFuture run()
{
ActiveRepairService.ParentRepairSession prs = ActiveRepairService.instance.getParentRepairSession(prsId);
- List<ListenableFutureTask<AcquireResult>> tasks = new ArrayList<>();
- for (ColumnFamilyStore cfs : prs.getColumnFamilyStores())
+ Collection<ColumnFamilyStore> cfss = prs.getColumnFamilyStores();
+ List<ListenableFutureTask<AcquireResult>> tasks = new ArrayList<>(cfss.size());
+ for (ColumnFamilyStore cfs : cfss)
{
cfs.forceBlockingFlush();
ListenableFutureTask<AcquireResult> task = ListenableFutureTask.create(new AcquisitionCallable(cfs, ranges, prsId));
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95b43b19/src/java/org/apache/cassandra/schema/Indexes.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/schema/Indexes.java b/src/java/org/apache/cassandra/schema/Indexes.java
index 81d400e..6122197 100644
--- a/src/java/org/apache/cassandra/schema/Indexes.java
+++ b/src/java/org/apache/cassandra/schema/Indexes.java
@@ -21,6 +21,7 @@ import java.util.*;
import java.util.stream.Stream;
import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.Sets;
import org.apache.cassandra.exceptions.ConfigurationException;
@@ -173,7 +174,7 @@ public final class Indexes implements Iterable<IndexMetadata>
* The reason for this is that schema altering statements are not calling
* Keyspaces.validate() as of yet. TODO: remove this once they do (on CASSANDRA-9425 completion)
*/
- Set<String> indexNames = new HashSet<>();
+ Set<String> indexNames = Sets.newHashSetWithExpectedSize(indexesByName.size());
for (IndexMetadata index : indexesByName.values())
{
if (indexNames.contains(index.name))
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95b43b19/src/java/org/apache/cassandra/schema/Types.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/schema/Types.java b/src/java/org/apache/cassandra/schema/Types.java
index c2d8aac..0bdf7cf 100644
--- a/src/java/org/apache/cassandra/schema/Types.java
+++ b/src/java/org/apache/cassandra/schema/Types.java
@@ -231,7 +231,7 @@ public final class Types implements Iterable<UserType>
/*
* build a DAG of UDT dependencies
*/
- Map<RawUDT, Integer> vertices = new HashMap<>(); // map values are numbers of referenced types
+ Map<RawUDT, Integer> vertices = Maps.newHashMapWithExpectedSize(definitions.size()); // map values are numbers of referenced types
for (RawUDT udt : definitions)
vertices.put(udt, 0);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95b43b19/src/java/org/apache/cassandra/utils/concurrent/Ref.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/concurrent/Ref.java b/src/java/org/apache/cassandra/utils/concurrent/Ref.java
index 3383186..b69e6bf 100644
--- a/src/java/org/apache/cassandra/utils/concurrent/Ref.java
+++ b/src/java/org/apache/cassandra/utils/concurrent/Ref.java
@@ -697,7 +697,7 @@ public final class Ref<T> implements RefCounted<T>
this.candidates.retainAll(candidates);
if (!this.candidates.isEmpty())
{
- List<String> names = new ArrayList<>();
+ List<String> names = new ArrayList<>(this.candidates.size());
for (Tidy tidy : this.candidates)
names.add(tidy.name());
logger.warn("Strong reference leak candidates detected: {}", names);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org