goutamadwant opened a new pull request, #12188:
URL: https://github.com/apache/seatunnel/pull/12188

   ### Purpose of this pull request
   
   Related to #12060. This is the independent benchmark-fixture correction 
requested in the issue. It excludes the readiness/framework changes in #12135.
   
   Previously, teardown reloaded three sampled DAGs through full-WAL scans 
after every store batch. As writes and deletion records accumulated, this 
untimed verification performed progressively more work and affected later 
measurements.
   
   - Check three cached values during warmup and intermediate measurement 
teardown.
   - Evict and reload those samples after the final measurement in each fork, 
before deleting the batch.
   - Preserve the 100 synchronous writes, unique keys, history TTL, deletion 
behavior and load benchmark.
   - Add lifecycle and real-storage regression tests, including full-batch 
persistence checks.
   - Update English and Chinese benchmark documentation.
   
   Normal WAL history still grows. Terminal read-back verifies persisted 
contents, not crash durability. No production storage code changes, and this PR 
does not claim to resolve all variance in #12060.
   
   ### Does this PR introduce _any_ user-facing change?
   
   Yes, for benchmark users and documentation only. Persistence read-back now 
runs after the final measured batch instead of between every batch. 
Documentation recommends `-foe true` so verification failures reject the run.
   
   SeaTunnel runtime behavior and configuration are unchanged. Old and 
corrected fixture scores must not be interpreted as a production speedup.
   
   ### How was this patch tested?
   
   - All 51 benchmark-module tests passed on Java 8 and Java 11.
   - Both native Linux confirmations passed baseline/candidate 42-module 
builds. Other reactor modules were compiled and packaged; their full test 
suites were not executed.
   - All 24 packaged smoke combinations passed: both JDKs, store/load methods 
and all six parameter combinations.
   - Restoring the original replay behavior caused 10 lifecycle tests to fail. 
The corrected fixture passed; an injected terminal read-back failure caused JMH 
to reject the run.
   - Separate diagnostics recorded replay counts changing from 
`3,3,3,3,3,3,3,3` to `0,0,0,0,0,0,0,3` across three warmups and five 
measurements.
   - Native Linux comparisons passed on [Java 
11](https://github.com/goutamadwant/seatunnel/actions/runs/34151236677) and 
[Java 8](https://github.com/goutamadwant/seatunnel/actions/runs/34151242011): 
36 fresh JVMs, 180 measured batches and 18,000 writes, with no detected 
swapping or discarded samples. Original settings were retained: 3 forks, 3 
warmups, 5 measurements and 100 writes per batch.
   - Corrected repeat-block means were 246.470 / 220.904 us/DAG for Java 11 at 
1 pipeline / 100 retained DAGs, 864.936 / 657.565 at 100 / 0, and 398.469 / 
404.007 for Java 8 at 1 / 100. Variability remains; neither mean nor dispersion 
consistently improves.
   - Raw samples, logs, commands and artifact hashes are attached to the linked 
runs. The runner is fork-only, not part of this PR. Initial attempts stopped 
before sampling because the collector rejected commit-specific version 
metadata; provenance validation was corrected separately without changing 
benchmark source or measurement settings.
   - Earlier local comparisons are retained separately because host paging 
limits their timing conclusions.
   
   ### Check list
   
   * [ ] If any new Jar binary package adding in your PR, please add License 
Notice according [New License 
Guide](https://github.com/apache/seatunnel/blob/dev/docs/en/developer/new-license.md)
   * [x] If necessary, please update the documentation to describe the new 
feature. https://github.com/apache/seatunnel/tree/dev/docs
   * [ ] If necessary, please update `incompatible-changes.md` to describe the 
incompatibility caused by this PR.
   * [ ] If you are contributing the connector code, please check that the 
following files are updated:
     1. Update 
[plugin-mapping.properties](https://github.com/apache/seatunnel/blob/dev/plugin-mapping.properties)
 and add new connector information in it
     2. Update the pom file of 
[seatunnel-dist](https://github.com/apache/seatunnel/blob/dev/seatunnel-dist/pom.xml)
     3. Add ci label in 
[label-scope-conf](https://github.com/apache/seatunnel/blob/dev/.github/workflows/labeler/label-scope-conf.yml)
     4. Add e2e testcase in 
[seatunnel-e2e](https://github.com/apache/seatunnel/tree/dev/seatunnel-e2e/seatunnel-connector-v2-e2e/)
     5. Update connector 
[plugin_config](https://github.com/apache/seatunnel/blob/dev/config/plugin_config)
   
   Unchecked items are not applicable: no new dependencies, runtime 
incompatibilities or connector changes.


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