Vivek1106-04 commented on PR #12418:
URL: https://github.com/apache/seatunnel/pull/12418#issuecomment-5760121562

   Full sweep on this branch, replacing the smoke numbers in the description.
   
   `Mode.SampleTime`, 3 forks, 3 warmup and 5 measurement iterations, JDK 17,
   `-Xms4g -Xmx4g -XX:ActiveProcessorCount=4`, `checkpointIntervalMillis=1000`.
   All figures us/op.
   
   | P | body us | mean | p50 | p99 | p99.9 | scheduler threads |
   |---|---|---|---|---|---|---|
   | 1 | 0 | 6.75 | 6.74 | 10.03 | 17.89 | 1 |
   | 1 | 500 | 6.51 | 6.62 | 10.03 | 24.03 | 1 |
   | 10 | 0 | 7.07 | 7.04 | 9.74 | 14.37 | 10 |
   | 10 | 500 | 7.11 | 7.08 | 9.79 | 13.49 | 11 |
   | 100 | 0 | 8.84 | 8.37 | 12.86 | 18.53 | 101 |
   | 100 | 500 | 9.77 | 9.33 | 18.69 | 23.88 | 101 |
   | 500 | 0 | 46.66 | 45.70 | 83.71 | 201.73 | 508 |
   | 500 | 500 | 46.17 | 45.12 | 79.23 | 208.90 | 509 |
   
   Errors on the means are 0.003 to 0.086 us. The benchmark resolves the thing 
it
   was built to resolve: scheduling delay is flat from 1 to 100 pipelines and 
then
   has a knee, reaching 6.8x the single-pipeline figure at 500, while the thread
   count tracks the pipeline count exactly as `newScheduledThreadPool(2, ...)` 
per
   coordinator implies.
   
   The `max` column is left out on purpose. It is one sample out of several 
million
   and is noisy here (333 us to 4096 us across these rows), so it is not a
   statistic worth reading.
   
   I ran the same benchmark with a second arm for the #12165 shared scheduler, 
and
   posted that comparison, a dispatch-saturation sweep, and a trace of what the
   dispatch body actually does on
   https://github.com/apache/seatunnel/issues/12339#issuecomment-5760116122 
rather
   than here, since it is about that design rather than about this benchmark. 
The
   short version relevant to this PR is that the benchmark separates the two
   scheduling models cleanly, including locating a regime where the shared 
model is
   four orders of magnitude worse, which was the point of building it.
   
   These are single-machine numbers on JDK 17, while the workflow matrix is 
Java 8
   and 11. Now that the benchmark is in the `benchmarks.yml` dispatch list it 
can
   be run on CI hardware against either branch if you want the figures confirmed
   there.
   


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

Reply via email to