mirror of
https://github.com/apache/druid.git
synced 2025-02-10 12:05:00 +00:00
I was looking into a query which was performing a bit poorly because the case_searched was touching more than 1 columns (if there is only 1 column there is a cache based evaluator). While I was doing that I've noticed that there are a few simple things which could help a bit: use a static TRUE/FALSE instead of creating a new object every time create the ExprEval early for ConstantExpr -s (except the one for BigInteger which seem to have some odd contract) return early from type autodetection these changes mostly reduce the amount of garbage the query creates during case_searched evaluation; although ExpressionSelectorBenchmark shows some improvements ~15% - but my manual trials on the taxi dataset with 60M rows showed more improvements - probably due to the fact that these changes mostly only reduce gc pressure.