richardstartin commented on PR #8764:
URL: https://github.com/apache/pinot/pull/8764#issuecomment-1136024849
Adding a couple of queries
```java
getBrokerResponse("SELECT RAW_INT_COL FROM MyTable "
+ "WHERE RAW_INT_COL = 10");
getBrokerResponse("SELECT RAW_INT_COL FROM MyTable "
+ "WHERE RAW_INT_COL in (1, 3)");
```
in the benchmark setup to pollute the type profile and prevent the
predicate evaluator from inlining demonstrates a larger difference, master here:
```
Benchmark (_numRows)
(_query) (_scenario) Mode Cnt Score Error Units
BenchmarkQueries.query 1500000 SELECT SUM(RAW_INT_COL) FROM MyTable
WHERE RAW_INT_COL BETWEEN 1 AND 10 EXP(0.001) avgt 5 16.914 ± 2.387
ms/op
BenchmarkQueries.query 1500000 SELECT SUM(RAW_INT_COL) FROM MyTable
WHERE RAW_INT_COL BETWEEN 1 AND 10 EXP(0.5) avgt 5 40.642 ± 1.986
ms/op
BenchmarkQueries.query 1500000 SELECT SUM(RAW_INT_COL) FROM MyTable
WHERE RAW_INT_COL BETWEEN 1 AND 10 EXP(0.999) avgt 5 35.026 ± 2.448
ms/op
```
Whereas with vectorisation (i.e. on this branch), throughput doesn't
decrease because of the type pollution:
```
Benchmark (_numRows)
(_query) (_scenario) Mode Cnt Score Error Units
BenchmarkQueries.query 1500000 SELECT SUM(RAW_INT_COL) FROM MyTable
WHERE RAW_INT_COL BETWEEN 1 AND 10 EXP(0.001) avgt 5 12.271 ± 1.857
ms/op
BenchmarkQueries.query 1500000 SELECT SUM(RAW_INT_COL) FROM MyTable
WHERE RAW_INT_COL BETWEEN 1 AND 10 EXP(0.5) avgt 5 30.771 ± 0.996
ms/op
BenchmarkQueries.query 1500000 SELECT SUM(RAW_INT_COL) FROM MyTable
WHERE RAW_INT_COL BETWEEN 1 AND 10 EXP(0.999) avgt 5 29.258 ± 3.856
ms/op
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]