Rachelint commented on PR #11943:
URL: https://github.com/apache/datafusion/pull/11943#issuecomment-2295096096

   @alamb @jayzhan211 @2010YOUY01 I have finish the blocked version common 
accumulators(avg, count, prim_op`) yesterday, and pass all tests now. Following 
is the benchmark result.
   
   It can make some queries(especially in clickbench) faster 1.1x~1.2x.
   However, some queries are slightly slower (like q1 in tpch_mem), because in 
q1, the dataset is too small with only one block, and the indexed op in 
`VecDeque` is a bit more expansive than the original `Vec`.
   I am trying to solve this slightly slower now.
   
   
   ```
   --------------------
   Benchmark clickbench_1.json
   --------------------
   
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
   ┃ Query        ┃       main ┃ sketch-blocked-aggr-state-management ┃        
Change ┃
   
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
   │ QQuery 0     │     0.72ms │                               0.70ms │     no 
change │
   │ QQuery 1     │    67.71ms │                              70.46ms │     no 
change │
   │ QQuery 2     │   169.92ms │                             172.21ms │     no 
change │
   │ QQuery 3     │   185.76ms │                             184.55ms │     no 
change │
   │ QQuery 4     │  1623.50ms │                            1634.12ms │     no 
change │
   │ QQuery 5     │  1603.76ms │                            1615.76ms │     no 
change │
   │ QQuery 6     │    61.56ms │                              62.08ms │     no 
change │
   │ QQuery 7     │    67.97ms │                              70.22ms │     no 
change │
   │ QQuery 8     │  2332.37ms │                            2403.19ms │     no 
change │
   │ QQuery 9     │  1952.18ms │                            2089.41ms │  1.07x 
slower │
   │ QQuery 10    │   551.12ms │                             568.32ms │     no 
change │
   │ QQuery 11    │   606.73ms │                             621.15ms │     no 
change │
   │ QQuery 12    │  1822.70ms │                            1817.46ms │     no 
change │
   │ QQuery 13    │  3414.56ms │                            3423.80ms │     no 
change │
   │ QQuery 14    │  2595.05ms │                            2301.80ms │ +1.13x 
faster │
   │ QQuery 15    │  1836.69ms │                            1848.67ms │     no 
change │
   │ QQuery 16    │  5056.23ms │                            4411.53ms │ +1.15x 
faster │
   │ QQuery 17    │  4903.18ms │                            4210.94ms │ +1.16x 
faster │
   │ QQuery 18    │ 10383.16ms │                            8553.34ms │ +1.21x 
faster │
   │ QQuery 19    │   152.06ms │                             152.12ms │     no 
change │
   │ QQuery 20    │  3364.93ms │                            3375.95ms │     no 
change │
   │ QQuery 21    │  3972.92ms │                            3975.31ms │     no 
change │
   │ QQuery 22    │  9594.65ms │                            9604.53ms │     no 
change │
   │ QQuery 23    │ 23807.10ms │                           24247.29ms │     no 
change │
   │ QQuery 24    │  1163.30ms │                            1177.67ms │     no 
change │
   │ QQuery 25    │  1055.71ms │                            1064.33ms │     no 
change │
   │ QQuery 26    │  1366.61ms │                            1373.03ms │     no 
change │
   │ QQuery 27    │  4821.72ms │                            4903.21ms │     no 
change │
   │ QQuery 28    │ 23710.55ms │                           24660.36ms │     no 
change │
   │ QQuery 29    │   910.31ms │                             925.10ms │     no 
change │
   │ QQuery 30    │  2092.15ms │                            2018.14ms │     no 
change │
   │ QQuery 31    │  2328.77ms │                            2164.04ms │ +1.08x 
faster │
   │ QQuery 32    │  8687.27ms │                            7025.87ms │ +1.24x 
faster │
   │ QQuery 33    │  9701.59ms │                            9752.08ms │     no 
change │
   │ QQuery 34    │  9628.66ms │                            9632.10ms │     no 
change │
   │ QQuery 35    │  3116.66ms │                            2815.94ms │ +1.11x 
faster │
   │ QQuery 36    │   261.19ms │                             261.67ms │     no 
change │
   │ QQuery 37    │   173.76ms │                             174.59ms │     no 
change │
   │ QQuery 38    │   162.87ms │                             156.41ms │     no 
change │
   │ QQuery 39    │   855.42ms │                             685.48ms │ +1.25x 
faster │
   │ QQuery 40    │    62.04ms │                              63.56ms │     no 
change │
   │ QQuery 41    │    57.62ms │                              57.32ms │     no 
change │
   │ QQuery 42    │    72.14ms │                              70.63ms │     no 
change │
   
└──────────────┴────────────┴──────────────────────────────────────┴───────────────┘
   ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓
   ┃ Benchmark Summary                                   ┃             ┃
   ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩
   │ Total Time (main)                                   │ 150354.87ms │
   │ Total Time (sketch-blocked-aggr-state-management)   │ 146396.43ms │
   │ Average Time (main)                                 │   3496.62ms │
   │ Average Time (sketch-blocked-aggr-state-management) │   3404.57ms │
   │ Queries Faster                                      │           8 │
   │ Queries Slower                                      │           1 │
   │ Queries with No Change                              │          34 │
   └─────────────────────────────────────────────────────┴─────────────┘
   --------------------
   Benchmark clickbench_partitioned.json
   --------------------
   
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
   ┃ Query        ┃       main ┃ sketch-blocked-aggr-state-management ┃        
Change ┃
   
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
   │ QQuery 0     │     2.03ms │                               2.12ms │     no 
change │
   │ QQuery 1     │    57.64ms │                              57.69ms │     no 
change │
   │ QQuery 2     │   154.25ms │                             155.66ms │     no 
change │
   │ QQuery 3     │   167.63ms │                             164.62ms │     no 
change │
   │ QQuery 4     │  1672.39ms │                            1666.01ms │     no 
change │
   │ QQuery 5     │  1510.56ms │                            1535.02ms │     no 
change │
   │ QQuery 6     │    50.93ms │                              49.05ms │     no 
change │
   │ QQuery 7     │    58.24ms │                              67.36ms │  1.16x 
slower │
   │ QQuery 8     │  2390.67ms │                            2422.91ms │     no 
change │
   │ QQuery 9     │  1931.85ms │                            2034.83ms │  1.05x 
slower │
   │ QQuery 10    │   533.01ms │                             547.14ms │     no 
change │
   │ QQuery 11    │   586.52ms │                             623.34ms │  1.06x 
slower │
   │ QQuery 12    │  1702.88ms │                            1717.49ms │     no 
change │
   │ QQuery 13    │  3282.15ms │                            3311.41ms │     no 
change │
   │ QQuery 14    │  2462.18ms │                            2201.31ms │ +1.12x 
faster │
   │ QQuery 15    │  1866.22ms │                            1855.67ms │     no 
change │
   │ QQuery 16    │  4925.49ms │                            4335.33ms │ +1.14x 
faster │
   │ QQuery 17    │  4805.47ms │                            4062.71ms │ +1.18x 
faster │
   │ QQuery 18    │  9854.37ms │                            8158.08ms │ +1.21x 
faster │
   │ QQuery 19    │   141.73ms │                             139.37ms │     no 
change │
   │ QQuery 20    │  3663.83ms │                            3646.12ms │     no 
change │
   │ QQuery 21    │  4188.63ms │                            4213.78ms │     no 
change │
   │ QQuery 22    │  9622.93ms │                            9658.20ms │     no 
change │
   │ QQuery 23    │ 21982.07ms │                           21865.34ms │     no 
change │
   │ QQuery 24    │  1063.25ms │                            1066.82ms │     no 
change │
   │ QQuery 25    │   853.54ms │                             856.04ms │     no 
change │
   │ QQuery 26    │  1238.92ms │                            1248.70ms │     no 
change │
   │ QQuery 27    │  5148.86ms │                            5210.08ms │     no 
change │
   │ QQuery 28    │ 22077.36ms │                           22844.09ms │     no 
change │
   │ QQuery 29    │   835.61ms │                             859.70ms │     no 
change │
   │ QQuery 30    │  2009.91ms │                            1918.45ms │     no 
change │
   │ QQuery 31    │  2223.99ms │                            2075.68ms │ +1.07x 
faster │
   │ QQuery 32    │  8526.46ms │                            6935.86ms │ +1.23x 
faster │
   │ QQuery 33    │  9774.11ms │                            9698.49ms │     no 
change │
   │ QQuery 34    │  9496.05ms │                            9616.92ms │     no 
change │
   │ QQuery 35    │  3134.31ms │                            2837.62ms │ +1.10x 
faster │
   │ QQuery 36    │   240.50ms │                             249.92ms │     no 
change │
   │ QQuery 37    │   111.59ms │                             108.84ms │     no 
change │
   │ QQuery 38    │   137.54ms │                             139.93ms │     no 
change │
   │ QQuery 39    │   807.76ms │                             664.32ms │ +1.22x 
faster │
   │ QQuery 40    │    52.18ms │                              52.88ms │     no 
change │
   │ QQuery 41    │    46.33ms │                              47.74ms │     no 
change │
   │ QQuery 42    │    61.40ms │                              60.95ms │     no 
change │
   
└──────────────┴────────────┴──────────────────────────────────────┴───────────────┘
   ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓
   ┃ Benchmark Summary                                   ┃             ┃
   ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩
   │ Total Time (main)                                   │ 145453.36ms │
   │ Total Time (sketch-blocked-aggr-state-management)   │ 140983.62ms │
   │ Average Time (main)                                 │   3382.64ms │
   │ Average Time (sketch-blocked-aggr-state-management) │   3278.69ms │
   │ Queries Faster                                      │           8 │
   │ Queries Slower                                      │           3 │
   │ Queries with No Change                              │          32 │
   └─────────────────────────────────────────────────────┴─────────────┘
   Note: Skipping 
/home/db/datafusion/benchmarks/results/main/clickbench_partitioned.json.bak as 
/home/db/datafusion/benchmarks/results/sketch-blocked-aggr-state-management/clickbench_partitioned.json.bak
 does not exist
   --------------------
   Benchmark tpch_mem_sf1.json
   --------------------
   
┏━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
   ┃ Query        ┃     main ┃ sketch-blocked-aggr-state-management ┃        
Change ┃
   
┡━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
   │ QQuery 1     │ 207.92ms │                             223.10ms │  1.07x 
slower │
   │ QQuery 2     │  31.29ms │                              32.18ms │     no 
change │
   │ QQuery 3     │  83.78ms │                              83.60ms │     no 
change │
   │ QQuery 4     │  58.56ms │                              59.37ms │     no 
change │
   │ QQuery 5     │ 121.47ms │                             124.23ms │     no 
change │
   │ QQuery 6     │  12.64ms │                              12.70ms │     no 
change │
   │ QQuery 7     │ 250.70ms │                             254.14ms │     no 
change │
   │ QQuery 8     │  32.10ms │                              26.25ms │ +1.22x 
faster │
   │ QQuery 9     │ 117.87ms │                             118.84ms │     no 
change │
   │ QQuery 10    │ 116.73ms │                             115.16ms │     no 
change │
   │ QQuery 11    │  56.63ms │                              57.57ms │     no 
change │
   │ QQuery 12    │  35.72ms │                              35.47ms │     no 
change │
   │ QQuery 13    │  76.44ms │                              76.97ms │     no 
change │
   │ QQuery 14    │  15.08ms │                              14.90ms │     no 
change │
   │ QQuery 15    │  24.27ms │                              23.97ms │     no 
change │
   │ QQuery 16    │  36.52ms │                              36.32ms │     no 
change │
   │ QQuery 17    │ 171.41ms │                             180.99ms │  1.06x 
slower │
   │ QQuery 18    │ 493.03ms │                             493.05ms │     no 
change │
   │ QQuery 19    │  35.46ms │                              35.43ms │     no 
change │
   │ QQuery 20    │  80.46ms │                              69.27ms │ +1.16x 
faster │
   │ QQuery 21    │ 287.92ms │                             287.08ms │     no 
change │
   │ QQuery 22    │  19.67ms │                              19.52ms │     no 
change │
   
└──────────────┴──────────┴──────────────────────────────────────┴───────────────┘
   ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
   ┃ Benchmark Summary                                   ┃           ┃
   ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
   │ Total Time (main)                                   │ 2365.68ms │
   │ Total Time (sketch-blocked-aggr-state-management)   │ 2380.12ms │
   │ Average Time (main)                                 │  107.53ms │
   │ Average Time (sketch-blocked-aggr-state-management) │  108.19ms │
   │ Queries Faster                                      │         2 │
   │ Queries Slower                                      │         2 │
   │ Queries with No Change                              │        18 │
   └─────────────────────────────────────────────────────┴───────────┘
   Note: Skipping /home/db/datafusion/benchmarks/results/main/tpch_sf10.json as 
/home/db/datafusion/benchmarks/results/sketch-blocked-aggr-state-management/tpch_sf10.json
 does not exist
   --------------------
   Benchmark tpch_sf1.json
   --------------------
   
┏━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
   ┃ Query        ┃     main ┃ sketch-blocked-aggr-state-management ┃        
Change ┃
   
┡━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
   │ QQuery 1     │ 291.46ms │                             296.78ms │     no 
change │
   │ QQuery 2     │  44.78ms │                              44.48ms │     no 
change │
   │ QQuery 3     │ 109.87ms │                             113.13ms │     no 
change │
   │ QQuery 4     │  60.18ms │                              59.74ms │     no 
change │
   │ QQuery 5     │ 196.33ms │                             195.53ms │     no 
change │
   │ QQuery 6     │  57.52ms │                              58.87ms │     no 
change │
   │ QQuery 7     │ 305.37ms │                             306.28ms │     no 
change │
   │ QQuery 8     │ 124.96ms │                             125.08ms │     no 
change │
   │ QQuery 9     │ 226.72ms │                             231.79ms │     no 
change │
   │ QQuery 10    │ 196.97ms │                             193.47ms │     no 
change │
   │ QQuery 11    │  32.67ms │                              37.54ms │  1.15x 
slower │
   │ QQuery 12    │  85.23ms │                              80.11ms │ +1.06x 
faster │
   │ QQuery 13    │ 128.19ms │                             127.57ms │     no 
change │
   │ QQuery 14    │  78.30ms │                              78.45ms │     no 
change │
   │ QQuery 15    │ 107.56ms │                             109.34ms │     no 
change │
   │ QQuery 16    │  42.01ms │                              42.85ms │     no 
change │
   │ QQuery 17    │ 274.14ms │                             284.20ms │     no 
change │
   │ QQuery 18    │ 453.89ms │                             456.47ms │     no 
change │
   │ QQuery 19    │ 141.27ms │                             141.08ms │     no 
change │
   │ QQuery 20    │ 134.95ms │                             121.77ms │ +1.11x 
faster │
   │ QQuery 21    │ 295.07ms │                             298.69ms │     no 
change │
   │ QQuery 22    │  25.33ms │                              27.91ms │  1.10x 
slower │
   
└──────────────┴──────────┴──────────────────────────────────────┴───────────────┘
   ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
   ┃ Benchmark Summary                                   ┃           ┃
   ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
   │ Total Time (main)                                   │ 3412.78ms │
   │ Total Time (sketch-blocked-aggr-state-management)   │ 3431.13ms │
   │ Average Time (main)                                 │  155.13ms │
   │ Average Time (sketch-blocked-aggr-state-management) │  155.96ms │
   │ Queries Faster                                      │         2 │
   │ Queries Slower                                      │         2 │
   │ Queries with No Change                              │        18 │
   └─────────────────────────────────────────────────────┴───────────┘
   ```


-- 
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: github-unsubscr...@datafusion.apache.org

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


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

Reply via email to