Sylvain Lebresne created CASSANDRA-10409:
--------------------------------------------

             Summary: 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
             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