richardstartin commented on pull request #8411:
URL: https://github.com/apache/pinot/pull/8411#issuecomment-1082867761


   This gives a substantial performance boost, which will be more pronounced on 
larger segment sizes and in deployments where the data exceeds RAM, especially 
for queries with `in` or `not` clauses:
   
   ```
   Benchmark               (_numRows)                                           
                                                                                
                    (_query)  (_scenario)  Mode  Cnt     Score     Error  Units
   BenchmarkQueries.query     1500000                                           
                                  SELECT COUNT(*) FROM MyTable WHERE INT_COL IN 
(0, 1, 2, 3, 4, 5, 7, 9, 10)   EXP(0.001)  avgt    5   356.283 ±  71.163  us/op
   BenchmarkQueries.query     1500000                                           
                                  SELECT COUNT(*) FROM MyTable WHERE INT_COL IN 
(0, 1, 2, 3, 4, 5, 7, 9, 10)     EXP(0.5)  avgt    5  7236.655 ± 303.783  us/op
   BenchmarkQueries.query     1500000                                           
                                  SELECT COUNT(*) FROM MyTable WHERE INT_COL IN 
(0, 1, 2, 3, 4, 5, 7, 9, 10)   EXP(0.999)  avgt    5  6355.539 ± 431.611  us/op
   BenchmarkQueries.query     1500000                                  SELECT 
COUNT(*) FROM MyTable WHERE INT_COL IN (0, 1, 2, 3, 4, 5, 7, 9, 10) AND 
LOW_CARDINALITY_STRING_COL = 'value1'    EXP(0.001)  avgt    5   404.633 ± 
145.129  us/op
   BenchmarkQueries.query     1500000                                  SELECT 
COUNT(*) FROM MyTable WHERE INT_COL IN (0, 1, 2, 3, 4, 5, 7, 9, 10) AND 
LOW_CARDINALITY_STRING_COL = 'value1'      EXP(0.5)  avgt    5  1545.330 ± 
115.749  us/op
   BenchmarkQueries.query     1500000                                  SELECT 
COUNT(*) FROM MyTable WHERE INT_COL IN (0, 1, 2, 3, 4, 5, 7, 9, 10) AND 
LOW_CARDINALITY_STRING_COL = 'value1'    EXP(0.999)  avgt    5  1268.241 ±  
82.946  us/op
   BenchmarkQueries.query     1500000  SELECT COUNT(*) FROM MyTable WHERE 
INT_COL IN (0, 1, 2, 3, 4, 5, 7, 9, 10) AND LOW_CARDINALITY_STRING_COL = 
'value1' AND SORTED_COL BETWEEN 10 and 50   EXP(0.001)  avgt    5   465.189 ± 
291.468  us/op
   BenchmarkQueries.query     1500000  SELECT COUNT(*) FROM MyTable WHERE 
INT_COL IN (0, 1, 2, 3, 4, 5, 7, 9, 10) AND LOW_CARDINALITY_STRING_COL = 
'value1' AND SORTED_COL BETWEEN 10 and 50     EXP(0.5)  avgt    5  2719.248 ± 
151.024  us/op
   BenchmarkQueries.query     1500000  SELECT COUNT(*) FROM MyTable WHERE 
INT_COL IN (0, 1, 2, 3, 4, 5, 7, 9, 10) AND LOW_CARDINALITY_STRING_COL = 
'value1' AND SORTED_COL BETWEEN 10 and 50   EXP(0.999)  avgt    5  2278.069 ± 
144.172  us/op
   BenchmarkQueries.query     1500000                                           
                                    SELECT COUNT(*) FROM MyTable WHERE 
LOW_CARDINALITY_STRING_COL = 'value1'   EXP(0.001)  avgt    5   924.339 ± 
112.722  us/op
   BenchmarkQueries.query     1500000                                           
                                    SELECT COUNT(*) FROM MyTable WHERE 
LOW_CARDINALITY_STRING_COL = 'value1'     EXP(0.5)  avgt    5   876.870 ± 
120.134  us/op
   BenchmarkQueries.query     1500000                                           
                                    SELECT COUNT(*) FROM MyTable WHERE 
LOW_CARDINALITY_STRING_COL = 'value1'   EXP(0.999)  avgt    5   913.038 ± 
119.857  us/op
   BenchmarkQueries.query     1500000                                           
                                   SELECT COUNT(*) FROM MyTable WHERE 
LOW_CARDINALITY_STRING_COL <> 'value1'   EXP(0.001)  avgt    5  5621.019 ±  
70.795  us/op
   BenchmarkQueries.query     1500000                                           
                                   SELECT COUNT(*) FROM MyTable WHERE 
LOW_CARDINALITY_STRING_COL <> 'value1'     EXP(0.5)  avgt    5  5636.841 ±  
91.966  us/op
   BenchmarkQueries.query     1500000                                           
                                   SELECT COUNT(*) FROM MyTable WHERE 
LOW_CARDINALITY_STRING_COL <> 'value1'   EXP(0.999)  avgt    5  5593.544 ± 
146.401  us/op
   ```
   
   
   ```
   Benchmark               (_numRows)                                           
                                                                                
                    (_query)  (_scenario)  Mode  Cnt     Score     Error  Units
   BenchmarkQueries.query     1500000                                           
                                  SELECT COUNT(*) FROM MyTable WHERE INT_COL IN 
(0, 1, 2, 3, 4, 5, 7, 9, 10)   EXP(0.001)  avgt    5   392.912 ±  73.485  us/op
   BenchmarkQueries.query     1500000                                           
                                  SELECT COUNT(*) FROM MyTable WHERE INT_COL IN 
(0, 1, 2, 3, 4, 5, 7, 9, 10)     EXP(0.5)  avgt    5   611.946 ±  95.690  us/op
   BenchmarkQueries.query     1500000                                           
                                  SELECT COUNT(*) FROM MyTable WHERE INT_COL IN 
(0, 1, 2, 3, 4, 5, 7, 9, 10)   EXP(0.999)  avgt    5   357.086 ± 125.896  us/op
   BenchmarkQueries.query     1500000                                  SELECT 
COUNT(*) FROM MyTable WHERE INT_COL IN (0, 1, 2, 3, 4, 5, 7, 9, 10) AND 
LOW_CARDINALITY_STRING_COL = 'value1'    EXP(0.001)  avgt    5   372.182 ± 
112.726  us/op
   BenchmarkQueries.query     1500000                                  SELECT 
COUNT(*) FROM MyTable WHERE INT_COL IN (0, 1, 2, 3, 4, 5, 7, 9, 10) AND 
LOW_CARDINALITY_STRING_COL = 'value1'      EXP(0.5)  avgt    5   751.461 ± 
125.460  us/op
   BenchmarkQueries.query     1500000                                  SELECT 
COUNT(*) FROM MyTable WHERE INT_COL IN (0, 1, 2, 3, 4, 5, 7, 9, 10) AND 
LOW_CARDINALITY_STRING_COL = 'value1'    EXP(0.999)  avgt    5   515.615 ± 
135.877  us/op
   BenchmarkQueries.query     1500000  SELECT COUNT(*) FROM MyTable WHERE 
INT_COL IN (0, 1, 2, 3, 4, 5, 7, 9, 10) AND LOW_CARDINALITY_STRING_COL = 
'value1' AND SORTED_COL BETWEEN 10 and 50   EXP(0.001)  avgt    5   443.027 ± 
259.710  us/op
   BenchmarkQueries.query     1500000  SELECT COUNT(*) FROM MyTable WHERE 
INT_COL IN (0, 1, 2, 3, 4, 5, 7, 9, 10) AND LOW_CARDINALITY_STRING_COL = 
'value1' AND SORTED_COL BETWEEN 10 and 50     EXP(0.5)  avgt    5  2848.508 ± 
271.759  us/op
   BenchmarkQueries.query     1500000  SELECT COUNT(*) FROM MyTable WHERE 
INT_COL IN (0, 1, 2, 3, 4, 5, 7, 9, 10) AND LOW_CARDINALITY_STRING_COL = 
'value1' AND SORTED_COL BETWEEN 10 and 50   EXP(0.999)  avgt    5  2268.246 ± 
127.690  us/op
   BenchmarkQueries.query     1500000                                           
                                    SELECT COUNT(*) FROM MyTable WHERE 
LOW_CARDINALITY_STRING_COL = 'value1'   EXP(0.001)  avgt    5   122.123 ±  
55.815  us/op
   BenchmarkQueries.query     1500000                                           
                                    SELECT COUNT(*) FROM MyTable WHERE 
LOW_CARDINALITY_STRING_COL = 'value1'     EXP(0.5)  avgt    5   124.019 ±  
40.301  us/op
   BenchmarkQueries.query     1500000                                           
                                    SELECT COUNT(*) FROM MyTable WHERE 
LOW_CARDINALITY_STRING_COL = 'value1'   EXP(0.999)  avgt    5   121.734 ±  
59.327  us/op
   BenchmarkQueries.query     1500000                                           
                                   SELECT COUNT(*) FROM MyTable WHERE 
LOW_CARDINALITY_STRING_COL <> 'value1'   EXP(0.001)  avgt    5   118.834 ±  
58.912  us/op
   BenchmarkQueries.query     1500000                                           
                                   SELECT COUNT(*) FROM MyTable WHERE 
LOW_CARDINALITY_STRING_COL <> 'value1'     EXP(0.5)  avgt    5   130.757 ±  
60.024  us/op
   BenchmarkQueries.query     1500000                                           
                                   SELECT COUNT(*) FROM MyTable WHERE 
LOW_CARDINALITY_STRING_COL <> 'value1'   EXP(0.999)  avgt    5   121.485 ±  
44.044  us/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: commits-unsubscr...@pinot.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to