cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benjamin Lerer (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-10409) Specialize MultiCBuilder when building a single clustering
Date Mon, 26 Oct 2015 14:16:27 GMT

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

Benjamin Lerer commented on CASSANDRA-10409:
--------------------------------------------

I think that the change to {{RestrictionSet.size()}} is wrong. {{size}} should return the
number of columns that have a restriction. If you have a {{MulticolumnRestriction}} there
is only one restriction but several columns are restricted.

I also have the following nits:
* In {{OneClusteringBuilder.buildBound}} the {{builder}} variable is not used
* In {{MultiClusteringBuilder.addElementToAll}} the value checks should probably done before
the loop rather than inside it.

Otherwise it is a +1 for me.
 

> Specialize MultiCBuilder when building a single clustering
> ----------------------------------------------------------
>
>                 Key: CASSANDRA-10409
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10409
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Sylvain Lebresne
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>              Labels: performance
>             Fix For: 3.x
>
>
> {{MultiCBuilder}} is used to build the {{Clustering}} and {{Slice.Bound}} used by  queries.
As the name implies, it's able to build multiple {{Clustering}}/{{Slice.Bound}} for when we
have {{IN}}, but most queries don't use {{IN}} and in this (frequent) case, {{MultiCBuilder}}
creates quite a bit more objects that would be necessary (it creates 2 lists for its {{elementsList}},
then a {{CBuilder}} and a {{BTreeSet.Builder}} (even though we know the resulting set will
have only one element in this case)). Without being huge, this does show up as non entirely
negligible when profiling some simple stress.
> We can easily know if the query has a {{IN}} and so we can know when only a single {{Clustering}}/{{Slice.Bound}}
is built, and we can specialize the implementation in that case to be less wasteful.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message