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

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

{quote}Modulo the inlining of getColumnDefs(), the change just replaces 
restrictions.keySet().size() by restrictions.size() so the change made by the 
patch is, I'm pretty confident, strictly equivalent to what was done 
before{quote}

My mistake.



> 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)

Reply via email to