Re: [PR] feat: support inability to yield for loop when it's not using Tok… [datafusion]

2025-05-28 Thread via GitHub


zhuqi-lucas commented on PR #16196:
URL: https://github.com/apache/datafusion/pull/16196#issuecomment-2918118294

   > πŸ€–: Benchmark completed
   > 
   > Details
   > 
   > ```
   > Comparing HEAD and issue_16193
   > 
   > Benchmark clickbench_extended.json
   > 
   > ┏━━┳┳━┳━━━┓
   > ┃ Query┃   HEAD ┃ issue_16193 ┃Change ┃
   > ┑━━╇╇━╇━━━┩
   > β”‚ QQuery 0 β”‚  1906.70ms β”‚   1850.03ms β”‚ no change β”‚
   > β”‚ QQuery 1 β”‚   691.18ms β”‚691.76ms β”‚ no change β”‚
   > β”‚ QQuery 2 β”‚  1411.18ms β”‚   1436.19ms β”‚ no change β”‚
   > β”‚ QQuery 3 β”‚   696.17ms β”‚700.91ms β”‚ no change β”‚
   > β”‚ QQuery 4 β”‚  1438.68ms β”‚   1458.59ms β”‚ no change β”‚
   > β”‚ QQuery 5 β”‚ 15100.87ms β”‚  14874.14ms β”‚ no change β”‚
   > β”‚ QQuery 6 β”‚  1996.44ms β”‚   1982.89ms β”‚ no change β”‚
   > β”‚ QQuery 7 β”‚  2089.84ms β”‚   2063.71ms β”‚ no change β”‚
   > β”‚ QQuery 8 β”‚   830.88ms β”‚835.14ms β”‚ no change β”‚
   > β””β”€β”€β”΄β”΄β”€β”΄β”€β”€β”€β”˜
   > ┏┳┓
   > ┃ Benchmark Summary  ┃┃
   > ┑╇┩
   > β”‚ Total Time (HEAD)  β”‚ 26161.93ms β”‚
   > β”‚ Total Time (issue_16193)   β”‚ 25893.35ms β”‚
   > β”‚ Average Time (HEAD)β”‚  2906.88ms β”‚
   > β”‚ Average Time (issue_16193) β”‚  2877.04ms β”‚
   > β”‚ Queries Faster β”‚  0 β”‚
   > β”‚ Queries Slower β”‚  0 β”‚
   > β”‚ Queries with No Change β”‚  9 β”‚
   > β””β”΄β”˜
   > 
   > Benchmark clickbench_partitioned.json
   > 
   > ┏━━┳┳━┳━━━┓
   > ┃ Query┃   HEAD ┃ issue_16193 ┃Change ┃
   > ┑━━╇╇━╇━━━┩
   > β”‚ QQuery 0 β”‚15.18ms β”‚ 15.80ms β”‚ no change β”‚
   > β”‚ QQuery 1 β”‚33.16ms β”‚ 32.97ms β”‚ no change β”‚
   > β”‚ QQuery 2 β”‚77.60ms β”‚ 80.92ms β”‚ no change β”‚
   > β”‚ QQuery 3 β”‚97.69ms β”‚ 97.56ms β”‚ no change β”‚
   > β”‚ QQuery 4 β”‚   589.28ms β”‚594.05ms β”‚ no change β”‚
   > β”‚ QQuery 5 β”‚   847.85ms β”‚836.44ms β”‚ no change β”‚
   > β”‚ QQuery 6 β”‚23.38ms β”‚ 22.84ms β”‚ no change β”‚
   > β”‚ QQuery 7 β”‚39.02ms β”‚ 36.26ms β”‚ +1.08x faster β”‚
   > β”‚ QQuery 8 β”‚   923.80ms β”‚927.93ms β”‚ no change β”‚
   > β”‚ QQuery 9 β”‚  1194.31ms β”‚   1194.76ms β”‚ no change β”‚
   > β”‚ QQuery 10β”‚   261.49ms β”‚264.83ms β”‚ no change β”‚
   > β”‚ QQuery 11β”‚   298.34ms β”‚300.14ms β”‚ no change β”‚
   > β”‚ QQuery 12β”‚   889.86ms β”‚893.87ms β”‚ no change β”‚
   > β”‚ QQuery 13β”‚  1343.97ms β”‚   1319.24ms β”‚ no change β”‚
   > β”‚ QQuery 14β”‚   850.37ms β”‚847.33ms β”‚ no change β”‚
   > β”‚ QQuery 15β”‚   829.14ms β”‚827.15ms β”‚ no change β”‚
   > β”‚ QQuery 16β”‚  1756.84ms β”‚   1712.96ms β”‚ no change β”‚
   > β”‚ QQuery 17β”‚  1607.84ms β”‚   1612.75ms β”‚ no change β”‚
   > β”‚ QQuery 18β”‚  3257.72ms β”‚   3059.25ms β”‚ +1.06x faster β”‚
   > β”‚ QQuery 19β”‚84.43ms β”‚ 81.15ms β”‚ no change β”‚
   > β”‚ QQuery 20β”‚  1143.94ms β”‚   1098.25ms β”‚ no change β”‚
   > β”‚ QQuery 21β”‚  1299.30ms β”‚   1302.19ms β”‚ no change β”‚
   > β”‚ QQuery 22β”‚  2139.01ms β”‚   2154.26ms β”‚ no change β”‚
   > β”‚ QQuery 23β”‚  7959.94ms β”‚   7886.41ms β”‚ no change β”‚
   > β”‚ QQuery 24β”‚   463.30ms β”‚458.37ms β”‚ no change β”‚
   > β”‚ QQuery 25β”‚   386.27ms β”‚380.85ms β”‚ no change β”‚
   > β”‚ QQuery 26β”‚   524.88ms β”‚519.71ms β”‚ no change β”‚
   > β”‚ QQuery 27β”‚  1581.12ms β”‚   1583.97ms β”‚ no change β”‚
   > β”‚ QQuery 28β”‚ 12730.61ms β”‚  12509.52ms β”‚ no change β”‚
   > β”‚ QQuery 29β”‚   536.15ms β”‚528.59ms β”‚ no change β”‚
   > β”‚ QQuery 30β”‚   793.18ms β”‚795.03ms β”‚ no change β”‚
   > β”‚ QQuery 31β”‚   857.17ms β”‚852.83ms β”‚ no change β”‚
   > β”‚ QQuery 32β”‚  2653.95ms β”‚   2631.77ms β”‚ no change β”‚
   > β”‚ QQuery 33β”‚  3315.12ms β”‚   3322.64ms β”‚ no change β”‚
   > β”‚ QQuery 34β”‚  3381.42ms β”‚   3355.04ms β”‚ no change β”‚
   > β”‚ QQuery 35β”‚  1317.57ms β”‚   1278.45ms β”‚ no change β”‚
   > β”‚ QQuery 36β”‚   129.98ms β”‚122.68ms β”‚ +1.06x faster β”‚
   > β”‚ QQuery 37β”‚56.20ms β”‚ 53.71ms β”‚ no change β”‚
   > β”‚ QQuery 38β”‚   119.55ms β”‚121.04ms β”‚ no change β”‚
   > β”‚ QQuery 39β”‚   193.87ms β”‚194.76ms β”‚ no change β”‚
   > β”‚ QQuery 40β”‚48.93ms β”‚ 49.63ms β”‚ no change β”‚
   > β”‚ QQuery 41β”‚44.38ms β”‚ 45.77ms β”‚ no change β”‚
   > β”‚ QQuery 42β”‚36.47ms β”‚ 37.46ms β”‚ no change β”‚
   > β””β”€β”€β”΄β”΄β”€β”΄β”€β”€β”€β”˜
   > ┏┳┓
   > ┃ Benchmark Summary  ┃┃
   > ┑╇┩
   > β”‚ Total Time (HEAD)  β”‚ 56733.55ms β”‚
   > β”‚ Total Ti

Re: [PR] feat: support inability to yield for loop when it's not using Tok… [datafusion]

2025-05-28 Thread via GitHub


alamb commented on PR #16196:
URL: https://github.com/apache/datafusion/pull/16196#issuecomment-2917443275

   πŸ€–: Benchmark completed
   
   Details
   
   
   
   ```
   Comparing HEAD and issue_16193
   
   Benchmark clickbench_extended.json
   
   ┏━━┳┳━┳━━━┓
   ┃ Query┃   HEAD ┃ issue_16193 ┃Change ┃
   ┑━━╇╇━╇━━━┩
   β”‚ QQuery 0 β”‚  1906.70ms β”‚   1850.03ms β”‚ no change β”‚
   β”‚ QQuery 1 β”‚   691.18ms β”‚691.76ms β”‚ no change β”‚
   β”‚ QQuery 2 β”‚  1411.18ms β”‚   1436.19ms β”‚ no change β”‚
   β”‚ QQuery 3 β”‚   696.17ms β”‚700.91ms β”‚ no change β”‚
   β”‚ QQuery 4 β”‚  1438.68ms β”‚   1458.59ms β”‚ no change β”‚
   β”‚ QQuery 5 β”‚ 15100.87ms β”‚  14874.14ms β”‚ no change β”‚
   β”‚ QQuery 6 β”‚  1996.44ms β”‚   1982.89ms β”‚ no change β”‚
   β”‚ QQuery 7 β”‚  2089.84ms β”‚   2063.71ms β”‚ no change β”‚
   β”‚ QQuery 8 β”‚   830.88ms β”‚835.14ms β”‚ no change β”‚
   β””β”€β”€β”΄β”΄β”€β”΄β”€β”€β”€β”˜
   ┏┳┓
   ┃ Benchmark Summary  ┃┃
   ┑╇┩
   β”‚ Total Time (HEAD)  β”‚ 26161.93ms β”‚
   β”‚ Total Time (issue_16193)   β”‚ 25893.35ms β”‚
   β”‚ Average Time (HEAD)β”‚  2906.88ms β”‚
   β”‚ Average Time (issue_16193) β”‚  2877.04ms β”‚
   β”‚ Queries Faster β”‚  0 β”‚
   β”‚ Queries Slower β”‚  0 β”‚
   β”‚ Queries with No Change β”‚  9 β”‚
   β””β”΄β”˜
   
   Benchmark clickbench_partitioned.json
   
   ┏━━┳┳━┳━━━┓
   ┃ Query┃   HEAD ┃ issue_16193 ┃Change ┃
   ┑━━╇╇━╇━━━┩
   β”‚ QQuery 0 β”‚15.18ms β”‚ 15.80ms β”‚ no change β”‚
   β”‚ QQuery 1 β”‚33.16ms β”‚ 32.97ms β”‚ no change β”‚
   β”‚ QQuery 2 β”‚77.60ms β”‚ 80.92ms β”‚ no change β”‚
   β”‚ QQuery 3 β”‚97.69ms β”‚ 97.56ms β”‚ no change β”‚
   β”‚ QQuery 4 β”‚   589.28ms β”‚594.05ms β”‚ no change β”‚
   β”‚ QQuery 5 β”‚   847.85ms β”‚836.44ms β”‚ no change β”‚
   β”‚ QQuery 6 β”‚23.38ms β”‚ 22.84ms β”‚ no change β”‚
   β”‚ QQuery 7 β”‚39.02ms β”‚ 36.26ms β”‚ +1.08x faster β”‚
   β”‚ QQuery 8 β”‚   923.80ms β”‚927.93ms β”‚ no change β”‚
   β”‚ QQuery 9 β”‚  1194.31ms β”‚   1194.76ms β”‚ no change β”‚
   β”‚ QQuery 10β”‚   261.49ms β”‚264.83ms β”‚ no change β”‚
   β”‚ QQuery 11β”‚   298.34ms β”‚300.14ms β”‚ no change β”‚
   β”‚ QQuery 12β”‚   889.86ms β”‚893.87ms β”‚ no change β”‚
   β”‚ QQuery 13β”‚  1343.97ms β”‚   1319.24ms β”‚ no change β”‚
   β”‚ QQuery 14β”‚   850.37ms β”‚847.33ms β”‚ no change β”‚
   β”‚ QQuery 15β”‚   829.14ms β”‚827.15ms β”‚ no change β”‚
   β”‚ QQuery 16β”‚  1756.84ms β”‚   1712.96ms β”‚ no change β”‚
   β”‚ QQuery 17β”‚  1607.84ms β”‚   1612.75ms β”‚ no change β”‚
   β”‚ QQuery 18β”‚  3257.72ms β”‚   3059.25ms β”‚ +1.06x faster β”‚
   β”‚ QQuery 19β”‚84.43ms β”‚ 81.15ms β”‚ no change β”‚
   β”‚ QQuery 20β”‚  1143.94ms β”‚   1098.25ms β”‚ no change β”‚
   β”‚ QQuery 21β”‚  1299.30ms β”‚   1302.19ms β”‚ no change β”‚
   β”‚ QQuery 22β”‚  2139.01ms β”‚   2154.26ms β”‚ no change β”‚
   β”‚ QQuery 23β”‚  7959.94ms β”‚   7886.41ms β”‚ no change β”‚
   β”‚ QQuery 24β”‚   463.30ms β”‚458.37ms β”‚ no change β”‚
   β”‚ QQuery 25β”‚   386.27ms β”‚380.85ms β”‚ no change β”‚
   β”‚ QQuery 26β”‚   524.88ms β”‚519.71ms β”‚ no change β”‚
   β”‚ QQuery 27β”‚  1581.12ms β”‚   1583.97ms β”‚ no change β”‚
   β”‚ QQuery 28β”‚ 12730.61ms β”‚  12509.52ms β”‚ no change β”‚
   β”‚ QQuery 29β”‚   536.15ms β”‚528.59ms β”‚ no change β”‚
   β”‚ QQuery 30β”‚   793.18ms β”‚795.03ms β”‚ no change β”‚
   β”‚ QQuery 31β”‚   857.17ms β”‚852.83ms β”‚ no change β”‚
   β”‚ QQuery 32β”‚  2653.95ms β”‚   2631.77ms β”‚ no change β”‚
   β”‚ QQuery 33β”‚  3315.12ms β”‚   3322.64ms β”‚ no change β”‚
   β”‚ QQuery 34β”‚  3381.42ms β”‚   3355.04ms β”‚ no change β”‚
   β”‚ QQuery 35β”‚  1317.57ms β”‚   1278.45ms β”‚ no change β”‚
   β”‚ QQuery 36β”‚   129.98ms β”‚122.68ms β”‚ +1.06x faster β”‚
   β”‚ QQuery 37β”‚56.20ms β”‚ 53.71ms β”‚ no change β”‚
   β”‚ QQuery 38β”‚   119.55ms β”‚121.04ms β”‚ no change β”‚
   β”‚ QQuery 39β”‚   193.87ms β”‚194.76ms β”‚ no change β”‚
   β”‚ QQuery 40β”‚48.93ms β”‚ 49.63ms β”‚ no change β”‚
   β”‚ QQuery 41β”‚44.38ms β”‚ 45.77ms β”‚ no change β”‚
   β”‚ QQuery 42β”‚36.47ms β”‚ 37.46ms β”‚ no change β”‚
   β””β”€β”€β”΄β”΄β”€β”΄β”€β”€β”€β”˜
   ┏┳┓
   ┃ Benchmark Summary  ┃┃
   ┑╇┩
   β”‚ Total Time (HEAD)  β”‚ 56733.55ms β”‚
   β”‚ Total Time (issue_16193)   β”‚ 56041.14ms β”‚
   β”‚ Average Time (HEAD)β”‚  1319.38ms β”‚
   β”‚ Average Time (issue_16193) β”‚  1303.28ms β”‚
   β”‚ Queries Faster β”‚  3 β”‚

Re: [PR] feat: support inability to yield for loop when it's not using Tok… [datafusion]

2025-05-28 Thread via GitHub


alamb commented on PR #16196:
URL: https://github.com/apache/datafusion/pull/16196#issuecomment-2917407566

   πŸ€– `./gh_compare_branch.sh` [Benchmark 
Script](https://github.com/alamb/datafusion-benchmarking/blob/main/gh_compare_branch.sh)
 Running
   Linux aal-dev 6.11.0-1013-gcp #13~24.04.1-Ubuntu SMP Wed Apr  2 16:34:16 UTC 
2025 x86_64 x86_64 x86_64 GNU/Linux
   Comparing issue_16193 (6cf3bf0fbc474a33030184fa7f0f6c013db7c7b7) to 
2d12bf6715e59142594cbc0ccb11bb19e4826b06 
[diff](https://github.com/apache/datafusion/compare/2d12bf6715e59142594cbc0ccb11bb19e4826b06..6cf3bf0fbc474a33030184fa7f0f6c013db7c7b7)
   Benchmarks: tpch_mem clickbench_partitioned clickbench_extended
   Results will be posted here when complete
   


-- 
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]



Re: [PR] feat: support inability to yield for loop when it's not using Tok… [datafusion]

2025-05-28 Thread via GitHub


alamb commented on PR #16196:
URL: https://github.com/apache/datafusion/pull/16196#issuecomment-2917408198

   Running the benchmarks again to gather more details


-- 
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]



Re: [PR] feat: support inability to yield for loop when it's not using Tok… [datafusion]

2025-05-28 Thread via GitHub


alamb commented on PR #16196:
URL: https://github.com/apache/datafusion/pull/16196#issuecomment-2917351712

   πŸ€–: Benchmark completed
   
   Details
   
   
   
   ```
   Comparing HEAD and issue_16193
   
   Benchmark clickbench_extended.json
   
   ┏━━┳┳━┳━━┓
   ┃ Query┃   HEAD ┃ issue_16193 ┃   Change ┃
   ┑━━╇╇━╇━━┩
   β”‚ QQuery 0 β”‚  1884.53ms β”‚   1932.55ms β”‚no change β”‚
   β”‚ QQuery 1 β”‚   692.42ms β”‚704.34ms β”‚no change β”‚
   β”‚ QQuery 2 β”‚  1422.09ms β”‚   1424.04ms β”‚no change β”‚
   β”‚ QQuery 3 β”‚   727.80ms β”‚722.42ms β”‚no change β”‚
   β”‚ QQuery 4 β”‚  1434.99ms β”‚   1447.24ms β”‚no change β”‚
   β”‚ QQuery 5 β”‚ 15295.77ms β”‚  15299.58ms β”‚no change β”‚
   β”‚ QQuery 6 β”‚  1997.15ms β”‚   2013.51ms β”‚no change β”‚
   β”‚ QQuery 7 β”‚  2049.62ms β”‚   2168.78ms β”‚ 1.06x slower β”‚
   β”‚ QQuery 8 β”‚   836.82ms β”‚848.06ms β”‚no change β”‚
   β””β”€β”€β”΄β”΄β”€β”΄β”€β”€β”˜
   ┏┳┓
   ┃ Benchmark Summary  ┃┃
   ┑╇┩
   β”‚ Total Time (HEAD)  β”‚ 26341.19ms β”‚
   β”‚ Total Time (issue_16193)   β”‚ 26560.52ms β”‚
   β”‚ Average Time (HEAD)β”‚  2926.80ms β”‚
   β”‚ Average Time (issue_16193) β”‚  2951.17ms β”‚
   β”‚ Queries Faster β”‚  0 β”‚
   β”‚ Queries Slower β”‚  1 β”‚
   β”‚ Queries with No Change β”‚  8 β”‚
   β””β”΄β”˜
   
   Benchmark clickbench_partitioned.json
   
   ┏━━┳┳━┳━━┓
   ┃ Query┃   HEAD ┃ issue_16193 ┃   Change ┃
   ┑━━╇╇━╇━━┩
   β”‚ QQuery 0 β”‚15.54ms β”‚ 15.42ms β”‚no change β”‚
   β”‚ QQuery 1 β”‚33.15ms β”‚ 33.70ms β”‚no change β”‚
   β”‚ QQuery 2 β”‚80.58ms β”‚ 80.48ms β”‚no change β”‚
   β”‚ QQuery 3 β”‚96.06ms β”‚ 95.48ms β”‚no change β”‚
   β”‚ QQuery 4 β”‚   588.87ms β”‚595.63ms β”‚no change β”‚
   β”‚ QQuery 5 β”‚   818.19ms β”‚815.70ms β”‚no change β”‚
   β”‚ QQuery 6 β”‚23.64ms β”‚ 23.47ms β”‚no change β”‚
   β”‚ QQuery 7 β”‚37.27ms β”‚ 36.33ms β”‚no change β”‚
   β”‚ QQuery 8 β”‚   926.36ms β”‚910.32ms β”‚no change β”‚
   β”‚ QQuery 9 β”‚  1187.66ms β”‚   1209.81ms β”‚no change β”‚
   β”‚ QQuery 10β”‚   267.19ms β”‚257.24ms β”‚no change β”‚
   β”‚ QQuery 11β”‚   293.30ms β”‚292.35ms β”‚no change β”‚
   β”‚ QQuery 12β”‚   911.85ms β”‚911.14ms β”‚no change β”‚
   β”‚ QQuery 13β”‚  1247.36ms β”‚   1317.95ms β”‚ 1.06x slower β”‚
   β”‚ QQuery 14β”‚   848.42ms β”‚844.38ms β”‚no change β”‚
   β”‚ QQuery 15β”‚   834.03ms β”‚835.94ms β”‚no change β”‚
   β”‚ QQuery 16β”‚  1736.24ms β”‚   1752.77ms β”‚no change β”‚
   β”‚ QQuery 17β”‚  1613.09ms β”‚   1606.14ms β”‚no change β”‚
   β”‚ QQuery 18β”‚  3084.41ms β”‚   3051.47ms β”‚no change β”‚
   β”‚ QQuery 19β”‚83.51ms β”‚ 84.57ms β”‚no change β”‚
   β”‚ QQuery 20β”‚  1125.18ms β”‚   1120.50ms β”‚no change β”‚
   β”‚ QQuery 21β”‚  1285.82ms β”‚   1308.43ms β”‚no change β”‚
   β”‚ QQuery 22β”‚  2139.79ms β”‚   2162.32ms β”‚no change β”‚
   β”‚ QQuery 23β”‚  8003.46ms β”‚   7992.05ms β”‚no change β”‚
   β”‚ QQuery 24β”‚   463.30ms β”‚450.76ms β”‚no change β”‚
   β”‚ QQuery 25β”‚   384.45ms β”‚381.51ms β”‚no change β”‚
   β”‚ QQuery 26β”‚   521.56ms β”‚522.91ms β”‚no change β”‚
   β”‚ QQuery 27β”‚  1586.93ms β”‚   1590.23ms β”‚no change β”‚
   β”‚ QQuery 28β”‚ 12567.57ms β”‚  12455.67ms β”‚no change β”‚
   β”‚ QQuery 29β”‚   526.70ms β”‚534.84ms β”‚no change β”‚
   β”‚ QQuery 30β”‚   807.81ms β”‚815.44ms β”‚no change β”‚
   β”‚ QQuery 31β”‚   858.67ms β”‚848.84ms β”‚no change β”‚
   β”‚ QQuery 32β”‚  2639.73ms β”‚   2641.91ms β”‚no change β”‚
   β”‚ QQuery 33β”‚  3342.77ms β”‚   3316.54ms β”‚no change β”‚
   β”‚ QQuery 34β”‚  3312.00ms β”‚   3325.35ms β”‚no change β”‚
   β”‚ QQuery 35β”‚  1312.86ms β”‚   1309.17ms β”‚no change β”‚
   β”‚ QQuery 36β”‚   117.39ms β”‚116.89ms β”‚no change β”‚
   β”‚ QQuery 37β”‚55.88ms β”‚ 56.08ms β”‚no change β”‚
   β”‚ QQuery 38β”‚   121.82ms β”‚119.37ms β”‚no change β”‚
   β”‚ QQuery 39β”‚   192.09ms β”‚195.42ms β”‚no change β”‚
   β”‚ QQuery 40β”‚44.75ms β”‚ 49.63ms β”‚ 1.11x slower β”‚
   β”‚ QQuery 41β”‚42.75ms β”‚ 44.34ms β”‚no change β”‚
   β”‚ QQuery 42β”‚38.39ms β”‚ 38.13ms β”‚no change β”‚
   β””β”€β”€β”΄β”΄β”€β”΄β”€β”€β”˜
   ┏┳┓
   ┃ Benchmark Summary  ┃┃
   ┑╇┩
   β”‚ Total Time (HEAD)  β”‚ 56218.38ms β”‚
   β”‚ Total Time (issue_16193)   β”‚ 56166.59ms β”‚
   β”‚ Average Time (HEAD)β”‚  1307.40ms β”‚
   β”‚ Average Time (issue_16193) β”‚  1306.20ms β”‚
   β”‚ Queries Faster β”‚  0 β”‚
   β”‚ Qu

Re: [PR] feat: support inability to yield for loop when it's not using Tok… [datafusion]

2025-05-28 Thread via GitHub


alamb commented on PR #16196:
URL: https://github.com/apache/datafusion/pull/16196#issuecomment-2917252077

   πŸ€– `./gh_compare_branch.sh` [Benchmark 
Script](https://github.com/alamb/datafusion-benchmarking/blob/main/gh_compare_branch.sh)
 Running
   Linux aal-dev 6.11.0-1013-gcp #13~24.04.1-Ubuntu SMP Wed Apr  2 16:34:16 UTC 
2025 x86_64 x86_64 x86_64 GNU/Linux
   Comparing issue_16193 (6cf3bf0fbc474a33030184fa7f0f6c013db7c7b7) to 
2d12bf6715e59142594cbc0ccb11bb19e4826b06 
[diff](https://github.com/apache/datafusion/compare/2d12bf6715e59142594cbc0ccb11bb19e4826b06..6cf3bf0fbc474a33030184fa7f0f6c013db7c7b7)
   Benchmarks: tpch_mem clickbench_partitioned clickbench_extended
   Results will be posted here when complete
   


-- 
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]



Re: [PR] feat: support inability to yield for loop when it's not using Tok… [datafusion]

2025-05-28 Thread via GitHub


zhuqi-lucas commented on PR #16196:
URL: https://github.com/apache/datafusion/pull/16196#issuecomment-2916219267

   Hi @alamb , i believe we also can do the clickbench benchmark for this PR. 
But i am not confident about the result since it seems we will always add some 
overhead to aggregate. Thanks!


-- 
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]



Re: [PR] feat: support inability to yield for loop when it's not using Tok… [datafusion]

2025-05-28 Thread via GitHub


zhuqi-lucas commented on code in PR #16196:
URL: https://github.com/apache/datafusion/pull/16196#discussion_r2111771381


##
datafusion/physical-plan/src/aggregates/no_grouping.rs:
##
@@ -77,6 +77,11 @@ impl AggregateStream {
 let baseline_metrics = BaselineMetrics::new(&agg.metrics, partition);
 let input = agg.input.execute(partition, Arc::clone(&context))?;
 
+// Only wrap no‐grouping aggregates in our YieldStream

Review Comment:
   From testing result, it seems the grouping by cases have some performance 
regression.



-- 
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]



Re: [PR] feat: support inability to yield for loop when it's not using Tok… [datafusion]

2025-05-28 Thread via GitHub


zhuqi-lucas commented on PR #16196:
URL: https://github.com/apache/datafusion/pull/16196#issuecomment-2916186751

   Another solution is using CoalescePartitionsExec to wrapper:
   
   
   ```rust
   diff --git a/datafusion/physical-plan/src/coalesce_partitions.rs 
b/datafusion/physical-plan/src/coalesce_partitions.rs
   index 114f83068..ffb24463e 100644
   --- a/datafusion/physical-plan/src/coalesce_partitions.rs
   +++ b/datafusion/physical-plan/src/coalesce_partitions.rs
   @@ -154,10 +154,10 @@ impl ExecutionPlan for CoalescePartitionsExec {
0 => internal_err!(
"CoalescePartitionsExec requires at least one input 
partition"
),
   -1 => {
   -// bypass any threading / metrics if there is a single 
partition
   -self.input.execute(0, context)
   -}
   +// 1 => {
   +// // bypass any threading / metrics if there is a single 
partition
   +// self.input.execute(0, context)
   +// }
_ => {
let baseline_metrics = BaselineMetrics::new(&self.metrics, 
partition);
// record the (very) minimal work done so that
   diff --git a/datafusion/physical-plan/src/execution_plan.rs 
b/datafusion/physical-plan/src/execution_plan.rs
   index b81b3c8be..8bb8b2145 100644
   --- a/datafusion/physical-plan/src/execution_plan.rs
   +++ b/datafusion/physical-plan/src/execution_plan.rs
   @@ -963,8 +963,7 @@ pub fn execute_stream(
) -> Result {
match plan.output_partitioning().partition_count() {
0 => Ok(Box::pin(EmptyRecordBatchStream::new(plan.schema(,
   -1 => plan.execute(0, context),
   -2.. => {
   +1.. => {
// merge into a single partition
let plan = CoalescePartitionsExec::new(Arc::clone(&plan));
// CoalescePartitionsExec must produce a single partition
   diff --git a/parquet-testing b/parquet-testing
   index 6e851ddd7..107b36603 16
   --- a/parquet-testing
   +++ b/parquet-testing
   @@ -1 +1 @@
   -Subproject commit 6e851ddd768d6af741c7b15dc594874399fc3cff
   +Subproject commit 107b36603e051aee26bd93e04b871034f6c756c0
   
   ```


-- 
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]



Re: [PR] feat: support inability to yield for loop when it's not using Tok… [datafusion]

2025-05-28 Thread via GitHub


zhuqi-lucas commented on code in PR #16196:
URL: https://github.com/apache/datafusion/pull/16196#discussion_r2111685115


##
datafusion/physical-plan/src/aggregates/no_grouping.rs:
##
@@ -77,6 +77,11 @@ impl AggregateStream {
 let baseline_metrics = BaselineMetrics::new(&agg.metrics, partition);
 let input = agg.input.execute(partition, Arc::clone(&context))?;
 
+// Only wrap no‐grouping aggregates in our YieldStream

Review Comment:
   Thank you @pepijnve , i also added the grouping support in latest PR.
   



-- 
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]



Re: [PR] feat: support inability to yield for loop when it's not using Tok… [datafusion]

2025-05-28 Thread via GitHub


zhuqi-lucas commented on code in PR #16196:
URL: https://github.com/apache/datafusion/pull/16196#discussion_r2111675314


##
datafusion/physical-plan/src/aggregates/no_grouping.rs:
##
@@ -77,6 +77,11 @@ impl AggregateStream {
 let baseline_metrics = BaselineMetrics::new(&agg.metrics, partition);
 let input = agg.input.execute(partition, Arc::clone(&context))?;
 
+// Only wrap no‐grouping aggregates in our YieldStream

Review Comment:
   You are right, i can reproduce it now:
   
   ```rust
   SELECT
 (value % 10) AS group_key,
 COUNT(*) AS cnt,
 SUM(value)   AS sum_val
   FROM range(1, 50) AS t
   GROUP BY (value % 10)
   ORDER BY group_key;
   ```



-- 
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]



Re: [PR] feat: support inability to yield for loop when it's not using Tok… [datafusion]

2025-05-28 Thread via GitHub


zhuqi-lucas commented on code in PR #16196:
URL: https://github.com/apache/datafusion/pull/16196#discussion_r2111658311


##
datafusion/physical-plan/src/aggregates/no_grouping.rs:
##
@@ -77,6 +77,11 @@ impl AggregateStream {
 let baseline_metrics = BaselineMetrics::new(&agg.metrics, partition);
 let input = agg.input.execute(partition, Arc::clone(&context))?;
 
+// Only wrap no‐grouping aggregates in our YieldStream

Review Comment:
   Thank you @pepijnve for review, i will try to reproduce it for group by 
aggregates.



-- 
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]



Re: [PR] feat: support inability to yield for loop when it's not using Tok… [datafusion]

2025-05-28 Thread via GitHub


pepijnve commented on code in PR #16196:
URL: https://github.com/apache/datafusion/pull/16196#discussion_r2111655000


##
datafusion/physical-plan/src/aggregates/no_grouping.rs:
##
@@ -77,6 +77,11 @@ impl AggregateStream {
 let baseline_metrics = BaselineMetrics::new(&agg.metrics, partition);
 let input = agg.input.execute(partition, Arc::clone(&context))?;
 
+// Only wrap no‐grouping aggregates in our YieldStream

Review Comment:
   In my own testing with `partition_count = 1` group by aggregates suffer from 
the same problem



-- 
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]



Re: [PR] feat: support inability to yield for loop when it's not using Tok… [datafusion]

2025-05-28 Thread via GitHub


zhuqi-lucas commented on PR #16196:
URL: https://github.com/apache/datafusion/pull/16196#issuecomment-2916000852

   Updated the performance for current PR:
   ```rust
   SET datafusion.execution.target_partitions = 1;
   
   SELECT SUM(value)
   FROM range(1,500) AS t;
   +--+
   | sum(t.value) |
   +--+
   | -4378597037249509888 |
   +--+
   1 row(s) fetched.
   Elapsed 22.315 seconds.
   ```
   
   
   ```rust
   SET datafusion.execution.target_partitions = 1;
   
   
   SELECT SUM(value)
   FROM range(1,500) AS t;
   +--+
   | sum(t.value) |
   +--+
   | -4378597037249509888 |
   +--+
   1 row(s) fetched.
   Elapsed 22.567 seconds.
   
   ```
   
   No performance regression from the above testing.
   
   


-- 
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]