[
https://issues.apache.org/jira/browse/CASSANDRA-8414?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14239312#comment-14239312
]
Benedict commented on CASSANDRA-8414:
-------------------------------------
We should integrate this for 2.1 also, since this behaviour is exhibited still,
just not in compaction. In 2.1 we should use System.arraycopy and
removed.nextSetBit though, as the performance will be improved, particularly
for sparse removes.
> Avoid loops over array backed iterators that call iter.remove()
> ---------------------------------------------------------------
>
> Key: CASSANDRA-8414
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8414
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Reporter: Richard Low
> Assignee: Jimmy MÃ¥rdell
> Labels: performance
> Fix For: 2.1.3
>
> Attachments: cassandra-2.0-8414-1.txt
>
>
> I noticed from sampling that sometimes compaction spends almost all of its
> time in iter.remove() in ColumnFamilyStore.removeDeletedStandard. It turns
> out that the cf object is using ArrayBackedSortedColumns, so deletes are from
> an ArrayList. If the majority of your columns are GCable tombstones then this
> is O(n^2). The data structure should be changed or a copy made to avoid this.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)