Details
-
Improvement
-
Status: Resolved
-
Low
-
Resolution: Fixed
-
None
Description
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.