You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@druid.apache.org by GitBox <gi...@apache.org> on 2018/11/11 01:39:34 UTC

[GitHub] gianm opened a new pull request #6599: Optimization for expressions that hit a single long column.

gianm opened a new pull request #6599: Optimization for expressions that hit a single long column.
URL: https://github.com/apache/incubator-druid/pull/6599
 
 
   There was previously a single-long-input optimization that applied only
   to the time column. These have been combined together. Also adds
   type-specific value caching to ExprEval, which allowed simplifying
   the SingleLongInputCachingExpressionColumnValueSelector code.
   
   Benchmarks (the ones we'd expect to see improvement on are arithmeticOnLong and stringConcatAndCompareOnLong):
   
   ```
   master:
   
   Benchmark                                                  (rowsPerSegment)  Mode  Cnt   Score   Error  Units
   ExpressionSelectorBenchmark.arithmeticOnLong                        1000000  avgt   30   35.975 ± 1.445  ms/op
   ExpressionSelectorBenchmark.stringConcatAndCompareOnLong            1000000  avgt   30  157.388 ± 6.704  ms/op
   ExpressionSelectorBenchmark.strlenUsingExpressionAsLong             1000000  avgt   30   15.079 ± 0.074  ms/op
   ExpressionSelectorBenchmark.strlenUsingExpressionAsString           1000000  avgt   30   13.146 ± 0.334  ms/op
   ExpressionSelectorBenchmark.strlenUsingExtractionFn                 1000000  avgt   30    4.679 ± 0.252  ms/op
   ExpressionSelectorBenchmark.timeFloorUsingCursor                    1000000  avgt   30   13.438 ± 0.162  ms/op
   ExpressionSelectorBenchmark.timeFloorUsingExpression                1000000  avgt   30   12.797 ± 0.110  ms/op
   ExpressionSelectorBenchmark.timeFloorUsingExtractionFn              1000000  avgt   30   11.328 ± 0.221  ms/op
   
   patch:
   
   Benchmark                                                  (rowsPerSegment)  Mode  Cnt   Score   Error  Units
   ExpressionSelectorBenchmark.arithmeticOnLong                        1000000  avgt   30  13.807 ± 0.390  ms/op
   ExpressionSelectorBenchmark.stringConcatAndCompareOnLong            1000000  avgt   30  13.743 ± 0.213  ms/op
   ExpressionSelectorBenchmark.strlenUsingExpressionAsLong             1000000  avgt   30  15.246 ± 0.054  ms/op
   ExpressionSelectorBenchmark.strlenUsingExpressionAsString           1000000  avgt   30  12.483 ± 0.495  ms/op
   ExpressionSelectorBenchmark.strlenUsingExtractionFn                 1000000  avgt   30   4.666 ± 0.241  ms/op
   ExpressionSelectorBenchmark.timeFloorUsingCursor                    1000000  avgt   30  14.617 ± 0.317  ms/op
   ExpressionSelectorBenchmark.timeFloorUsingExpression                1000000  avgt   30  13.782 ± 0.497  ms/op
   ExpressionSelectorBenchmark.timeFloorUsingExtractionFn              1000000  avgt   30  11.414 ± 0.147  ms/op
   ```

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@druid.apache.org
For additional commands, e-mail: commits-help@druid.apache.org