eldenmoon opened a new pull request, #66668:
URL: https://github.com/apache/doris/pull/66668

   ### What problem does this PR solve?
   
   Issue Number: None
   
   Related PR: #66204
   
   Problem Summary:
   
   PR #66204 introduced the ColumnVariantV2 segment read/write paths, but the 
repository did not have a reproducible component benchmark that compares 
Variant V1 and V2 through the production `SegmentWriter` and `SegmentIterator` 
chain.
   
   This PR adds a deterministic Release Google Benchmark with:
   
   - ingestion-to-segment cases for `Sparse16`, `Doc16`, and `Full` layouts;
   - whole-column reads for the same three layouts;
   - exact-path reads for materialized, sparse, and globally missing paths;
   - five paired real-time samples per version with ABBA ordering;
   - input checksum, physical-layout, row-count, hit-count, and reader-route 
validation outside timed regions;
   - a runner that records source, binary, config, CPU, load, filesystem, 
stdout, stderr, and raw JSON provenance;
   - a configurable temporary root so runs can use tmpfs and avoid unrelated 
block-device traffic.
   
   #### Preliminary 1M-row result
   
   Lower latency is better. `V2/V1` is the latency ratio; the throughput 
multiplier is its inverse.
   
   | Operation | Shape/path | V1 median (ms) | V2 median (ms) | V2/V1 | V2 
latency change | V2 throughput / V1 |
   |---|---|---:|---:|---:|---:|---:|
   | Ingest | Doc16 | 9915.61 | 15140.28 | 1.527 | +52.69% | 0.655x |
   | Ingest | Full | 20123.54 | 14978.72 | 0.744 | -25.57% | 1.343x |
   | Ingest | Sparse16 | 22378.97 | 14928.04 | 0.667 | -33.29% | 1.499x |
   | Exact path | Global miss | 4.934 | 4.758 | 0.964 | -3.58% | 1.037x |
   | Exact path | Materialized 100% | 8.521 | 6.586 | 0.773 | -22.70% | 1.294x |
   | Exact path | Sparse 6% | 38.720 | 35.977 | 0.929 | -7.08% | 1.076x |
   | Whole column | Doc16 | 4035.47 | 8582.98 | 2.127 | +112.69% | 0.470x |
   | Whole column | Full | 2841.82 | 9069.15 | 3.191 | +219.13% | 0.313x |
   | Whole column | Sparse16 | 4931.91 | 8456.33 | 1.715 | +71.46% | 0.583x |
   
   The selected groups contain all five samples for both V1 and V2; each side 
has CV <= 5% and `(max-min)/median <= 15%`. Runs used a Release binary, one 
pinned CPU, `/dev/shm`, warm-cache reads, and 1,000,000 rows. They were 
produced at benchmark revision `330db55caf78` on top of PR #66204 revision 
`5c45ec90ff1`; the three benchmark files are byte-identical to this PR 
revision. These are component-level results, not end-to-end SQL results. 
`COUNT`, `SUM`, and filter workloads are intentionally outside the current 
scope.
   
   #### Validation
   
   - `build-support/clang-format.sh` and `build-support/check-format.sh`
   - `bash -n be/benchmark/run_variant_segment_benchmark.sh`
   - Release benchmark target compiled, linked, and installed on current 
`master`; `build.sh --benchmark` then reached its known generic output-copy 
tail where a benchmark-only build has no `be/output/bin/*`
   - Current PR revision: 32K-row tmpfs full matrix, 90/90 real-time samples, 
45 V1 + 45 V2, zero benchmark errors, expected exact-path routes and hit 
counts, no temporary-storage residue
   
   ### Release note
   
   None
   
   ### Check List (For Author)
   
   - Test <!-- At least one of them must be included. -->
       - [ ] Regression test
       - [ ] Unit Test
       - [x] Manual test (add detailed scripts or steps below)
       - [ ] No need to test or manual test. Explain why:
           - [ ] This is a refactor/code format and no logic has been changed.
           - [ ] Previous test can cover this change.
           - [ ] No code files have been changed.
           - [ ] Other reason <!-- Add your reason?  -->
   
   - Behavior changed:
       - [x] No. This is a benchmark-only change.
       - [ ] Yes. <!-- Explain the behavior change -->
   
   - Does this need documentation?
       - [x] No.
       - [ ] Yes. <!-- Add document PR link here. eg: 
https://github.com/apache/doris-website/pull/1214 -->
   
   ### Check List (For Reviewer who merge this PR)
   
   - [ ] Confirm the release note
   - [ ] Confirm test cases
   - [ ] Confirm document
   - [ ] Add branch pick label <!-- Add branch pick label that this PR should 
merge into -->
   


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

Reply via email to