You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by bd...@apache.org on 2020/04/11 00:57:15 UTC
[cassandra] branch trunk updated: Replace array iterators with get
by index
This is an automated email from the ASF dual-hosted git repository.
bdeggleston pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git
The following commit(s) were added to refs/heads/trunk by this push:
new 543bbdd Replace array iterators with get by index
543bbdd is described below
commit 543bbdd9b630a77cff40cc266b427946688805ed
Author: Blake Eggleston <bd...@gmail.com>
AuthorDate: Thu Oct 17 15:37:20 2019 -0700
Replace array iterators with get by index
Patch by Blake Eggleston; Reviewed by Benedict Elliott Smith for CASSANDRA-15394
---
CHANGES.txt | 1 +
.../cassandra/db/compaction/AbstractCompactionStrategy.java | 12 +++++++-----
.../apache/cassandra/db/compaction/CompactionIterator.java | 8 ++++++--
src/java/org/apache/cassandra/db/rows/EncodingStats.java | 3 ++-
src/java/org/apache/cassandra/db/rows/Row.java | 7 ++++---
src/java/org/apache/cassandra/utils/MergeIterator.java | 3 ++-
6 files changed, 22 insertions(+), 12 deletions(-)
diff --git a/CHANGES.txt b/CHANGES.txt
index c1e5aeb..dc04d30 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
4.0-alpha4
+ * Replace array iterators with get by index (CASSANDRA-15394)
* Minimize BTree iterator allocations (CASSANDRA-15389)
* Add client request size server metrics (CASSANDRA-15704)
* Add additional logging around FileUtils and compaction leftover cleanup (CASSANDRA-15705)
diff --git a/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java b/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java
index ad494b1..30b4cb8 100644
--- a/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java
+++ b/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java
@@ -316,8 +316,8 @@ public abstract class AbstractCompactionStrategy
public long getTotalBytesScanned()
{
long bytesScanned = 0L;
- for (ISSTableScanner scanner : scanners)
- bytesScanned += scanner.getBytesScanned();
+ for (int i=0, isize=scanners.size(); i<isize; i++)
+ bytesScanned += scanners.get(i).getBytesScanned();
return bytesScanned;
}
@@ -325,8 +325,8 @@ public abstract class AbstractCompactionStrategy
public long getTotalCompressedSize()
{
long compressedSize = 0;
- for (ISSTableScanner scanner : scanners)
- compressedSize += scanner.getCompressedLengthInBytes();
+ for (int i=0, isize=scanners.size(); i<isize; i++)
+ compressedSize += scanners.get(i).getCompressedLengthInBytes();
return compressedSize;
}
@@ -336,8 +336,10 @@ public abstract class AbstractCompactionStrategy
double compressed = 0.0;
double uncompressed = 0.0;
- for (ISSTableScanner scanner : scanners)
+ for (int i=0, isize=scanners.size(); i<isize; i++)
{
+ @SuppressWarnings("resource")
+ ISSTableScanner scanner = scanners.get(i);
compressed += scanner.getCompressedLengthInBytes();
uncompressed += scanner.getLengthInBytes();
}
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionIterator.java b/src/java/org/apache/cassandra/db/compaction/CompactionIterator.java
index 1128108..ce3bb6c 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionIterator.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionIterator.java
@@ -152,8 +152,10 @@ public class CompactionIterator extends CompactionInfo.Holder implements Unfilte
public UnfilteredRowIterators.MergeListener getRowMergeListener(DecoratedKey partitionKey, List<UnfilteredRowIterator> versions)
{
int merged = 0;
- for (UnfilteredRowIterator iter : versions)
+ for (int i=0, isize=versions.size(); i<isize; i++)
{
+ @SuppressWarnings("resource")
+ UnfilteredRowIterator iter = versions.get(i);
if (iter != null)
merged++;
}
@@ -167,8 +169,10 @@ public class CompactionIterator extends CompactionInfo.Holder implements Unfilte
Columns statics = Columns.NONE;
Columns regulars = Columns.NONE;
- for (UnfilteredRowIterator iter : versions)
+ for (int i=0, isize=versions.size(); i<isize; i++)
{
+ @SuppressWarnings("resource")
+ UnfilteredRowIterator iter = versions.get(i);
if (iter != null)
{
statics = statics.mergeTo(iter.columns().statics);
diff --git a/src/java/org/apache/cassandra/db/rows/EncodingStats.java b/src/java/org/apache/cassandra/db/rows/EncodingStats.java
index 4a7bb19..c73728d 100644
--- a/src/java/org/apache/cassandra/db/rows/EncodingStats.java
+++ b/src/java/org/apache/cassandra/db/rows/EncodingStats.java
@@ -119,8 +119,9 @@ public class EncodingStats
return function.apply(values.get(0));
Collector collector = new Collector();
- for (V v : values)
+ for (int i=0, isize=values.size(); i<isize; i++)
{
+ V v = values.get(i);
EncodingStats stats = function.apply(v);
if (stats.minTimestamp != TIMESTAMP_EPOCH)
collector.updateTimestamp(stats.minTimestamp);
diff --git a/src/java/org/apache/cassandra/db/rows/Row.java b/src/java/org/apache/cassandra/db/rows/Row.java
index ee93da4..3703d549 100644
--- a/src/java/org/apache/cassandra/db/rows/Row.java
+++ b/src/java/org/apache/cassandra/db/rows/Row.java
@@ -786,9 +786,9 @@ public interface Row extends Unfiltered, Iterable<ColumnData>
if (column.isSimple())
{
Cell merged = null;
- for (ColumnData data : versions)
+ for (int i=0, isize=versions.size(); i<isize; i++)
{
- Cell cell = (Cell)data;
+ Cell cell = (Cell) versions.get(i);
if (!activeDeletion.deletes(cell))
merged = merged == null ? cell : Cells.reconcile(merged, cell);
}
@@ -799,8 +799,9 @@ public interface Row extends Unfiltered, Iterable<ColumnData>
complexBuilder.newColumn(column);
complexCells.clear();
DeletionTime complexDeletion = DeletionTime.LIVE;
- for (ColumnData data : versions)
+ for (int i=0, isize=versions.size(); i<isize; i++)
{
+ ColumnData data = versions.get(i);
ComplexColumnData cd = (ComplexColumnData)data;
if (cd.complexDeletion().supersedes(complexDeletion))
complexDeletion = cd.complexDeletion();
diff --git a/src/java/org/apache/cassandra/utils/MergeIterator.java b/src/java/org/apache/cassandra/utils/MergeIterator.java
index 1f196fb..6713dd0 100644
--- a/src/java/org/apache/cassandra/utils/MergeIterator.java
+++ b/src/java/org/apache/cassandra/utils/MergeIterator.java
@@ -52,8 +52,9 @@ public abstract class MergeIterator<In,Out> extends AbstractIterator<Out> implem
public void close()
{
- for (Iterator<In> iterator : this.iterators)
+ for (int i=0, isize=iterators.size(); i<isize; i++)
{
+ Iterator<In> iterator = iterators.get(i);
try
{
if (iterator instanceof AutoCloseable)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org