You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Benedict (JIRA)" <ji...@apache.org> on 2014/04/29 14:02:14 UTC

[jira] [Commented] (CASSANDRA-7107) General minor tidying of CollationController path

    [ https://issues.apache.org/jira/browse/CASSANDRA-7107?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13984221#comment-13984221 ] 

Benedict commented on CASSANDRA-7107:
-------------------------------------

Whilst the main point of this is to tidy up, I also find a roughly 15-20% performance bump for the following stress command:

bq. cassandra-stress read n=10000000 -key populate=1..100 -col slice n=fixed\(1000\) size=fixed\(1\) -rate threads=50 -mode thrift

I've pushed the changes [here|https://github.com/belliottsmith/cassandra/tree/7107]



> General minor tidying of CollationController path
> -------------------------------------------------
>
>                 Key: CASSANDRA-7107
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7107
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Benedict
>            Assignee: Benedict
>            Priority: Minor
>             Fix For: 2.1.0
>
>
> There is a lot of unnecessary boiler plate when grabbing an iterator from an in-memory column family. This patch:
> * Removes FakeCellName
> * Avoids wrapping a non-OnDiskAtomIterator as an OnDiskAtomIterator except when the wrapping is useful
> * Removes ColumnSlice.NavigableSetIterator and creates a simpler more direct equivalent in ABTC
> * Does not construct a SliceIterator in either ABSC or ABTC if only one slice is requested (just returns that slice as an Iterator)
> * Does not construct multiple list indirections in ABSC when constructing a slice
> * Shares forward/reverse iterators in ABSC between slices and full-iteration
> * Avoids O(N) comparisons during collation of results into an ABSC, by using the knowledge that all columns are provided in insertion order from a merge iterator



--
This message was sent by Atlassian JIRA
(v6.2#6252)