Bound finished-DAG benchmark verification
Corrected SeaTunnel Zeta's IMap DAG storage fixture so intermediate teardown checks cached samples and performs the expensive persisted read-back only after the final measured batch in each fork.
apache/seatunnel · #12188
Benchmark correctness fix
SeaTunnel's finished-DAG storage measurements no longer accumulate full-WAL verification work between timed iterations while retaining a final persistence check.
Problem
Teardown reloaded sampled DAGs through complete WAL scans after every store batch. As writes and deletion records accumulated, this untimed but growing verification work influenced later measurements and weakened benchmark comparability.
Approach
Keeps lightweight cached-value checks during warmup and intermediate measurements, then evicts and reloads the samples once after the final measurement before cleanup. Write counts, keys, history retention, deletion behavior, and the independent load benchmark remain unchanged.
Impact and scope
- Removes progressive verification overhead from the intervals between measured benchmark batches.
- Retains an end-of-fork persistence read-back instead of trading measurement isolation for weaker correctness coverage.
- Prevents corrected fixture scores from being misrepresented as a production storage speedup.
Validation
- Added lifecycle and real-storage regressions, including full-batch persistence checks and an injected terminal read-back failure that JMH correctly rejected.
- All 51 benchmark-module tests passed on Java 8 and Java 11; 24 packaged smoke combinations and two native Linux baseline/candidate confirmations also passed.
- A SeaTunnel reviewer found no blockers and confirmed the final build was green; the GitHub-verified merge commit credits Goutam Adwant.