Conversation
02b1033 to
c8bc43a
Compare
|
derek bench run-pairs=1 run-side=feature preset=public-mix |
|
cc @shekhirin ❌ Benchmark failed. View logs |
1 similar comment
|
cc @shekhirin ❌ Benchmark failed. View logs |
Co-authored-by: Derek Cofausper <256792747+decofe@users.noreply.github.com>
Co-authored-by: Derek Cofausper <256792747+decofe@users.noreply.github.com>
Co-authored-by: Derek Cofausper <256792747+decofe@users.noreply.github.com>
Co-authored-by: Derek Cofausper <256792747+decofe@users.noreply.github.com>
bc16f39 to
f56a26e
Compare
Co-authored-by: Derek Cofausper <256792747+decofe@users.noreply.github.com>
|
cc @decofe 🚀 Benchmark started! View job ⏳ Status: Running benchmark... Config: mode: |
|
cc @onbjerg ⚪ Benchmark complete: No Difference View job ⚪ Bench Comparison: No DifferenceRefs: a6d5349 vs 75fb3a9 Configuration
Tempo Metrics
Builder
Builder details
Validator
Observability |
|
cc @onbjerg ⚪ Benchmark complete: No Difference View job ⚪ Bench Comparison: No DifferenceRefs: a6d5349 vs 75fb3a9 Configuration
Tempo Metrics
Builder
Builder details
Validator
Observability |
Preserve the existing public-mix allocation while integrating the versioned metadata producer from main. Co-authored-by: Derek Cofausper <256792747+decofe@users.noreply.github.com>
#214) Setup currently inserts receipt barriers whenever consecutive transactions change sender or nonce lane, serializing independent accounts. Replace that heuristic with explicit `setup.steps[].depends_on` receipt dependencies: independent lanes submit concurrently, ordered nonce lanes still pipeline, and every setup transaction must succeed before workload starts. This is a breaking scheduling change. Existing workloads must declare deployment, configuration, funding, and authorization prerequisites explicitly. Dependencies on expanded steps wait for every emitted transaction. Generation and `bench send` validate the complete setup graph before output/submission, rejecting missing/duplicate IDs, unknown prerequisites, and cycles including nonce-lane ordering. Setup now also honors `--max-pending`. Forward receipt dependencies are supported by `generate | bench send`. Online scenario initialization remains serial and rejects forward dependencies before submission. Setup is buffered for validation; workload streaming is unchanged. Validation: core/CLI/Tempo suites passed (456 tests, one ignored), plus 12 setup sender tests including fan-in, independent submission, failures, and forward dependencies exceeding the bounded buffer under a pending cap. Workspace Clippy and nightly formatting passed. The unrelated `bench-cli` RPC replay integration test fails identically on the base commit with the installed Anvil (four successful responses instead of five). All GitHub CI checks pass. Companion workload migration: tempoxyz/tempo#7569. The matched multiregion benchmark reduced mean setup time from **729.81 s to 145.66 s**: **5.01× faster**, an **80.0% reduction**, saving **584.15 s (9m 44s)** per setup. | Scheduler | Repetition 1 | Repetition 2 | Mean setup time | | --- | ---: | ---: | ---: | | [Heuristic baseline](https://github.com/tempoxyz/tempo/actions/runs/35210688461) | 729.69 s | 729.94 s | 729.81 s | | [Explicit dependencies](https://github.com/tempoxyz/tempo/actions/runs/35215421489) | 145.75 s | 145.57 s | 145.66 s | All four measurements completed **3,451 setup transactions successfully, with zero setup failures**. Both workflows and their infrastructure teardown completed successfully. Timings come from `Setup transactions completed ... elapsed=...` in each phase's `txgen.out`; they include setup input reading, validation, submission, and receipt waits, and exclude infrastructure provisioning and subsequent workload execution. Inputs: 10 validators across `us-east-1,eu-central-1`, 1,000 users, 715 zones, `bloat=1` (reported as 1,000 MiB), target 50k TPS, 5,000 concurrent requests, a 30 s workload generation limit, and `--defer-signing`. Both runs use Tempo node commit `8e4c039b96c3e8feb7a59f171d17504de909679f` and benchmark runner `67ab5444bf0fdf4ff2d4b28eab46e72ead38d3a9`. Baseline txgen is `466fca39ca26d276c917878b7c34d25523772baa`; explicit-dependency txgen is `c70b70230f37ca5fee2851224b48170a5ca9d269`. Artifact verification confirmed identical rendered transaction definitions and workload weights after removing dependency metadata and normalizing the per-run temporary include directory. Each repetition sent 75–76 workload transactions after setup, all successful, so these measurements establish setup-time improvement for this configuration; they do not establish sustained throughput.
Declare the four receipt dependencies between the deployer and owner in the shared vault setup used by `vault-deposit` and `vault-withdraw`, so both remain correct when [txgen tempoxyz#214](tempoxyz/txgen#214) removes automatic sender-change barriers. These are the same vault edges exercised in [tempoxyz#7569](tempoxyz#7569), split out against main. Validated generation for both presets with 3 and 1,000 users (23 and 1,020 setup transactions), including emitted dependency IDs and graph validation; only dependency metadata changes.
…empoxyz#7698) Make withdrawal-position seeding wait for `wrapper`, the final deployment on the shared neobank deployer nonce lane, before the user calls the deployed fixture. This replaces reliance on automatic sender-change barriers removed by [txgen tempoxyz#214](tempoxyz/txgen#214), splitting the migration already included in [tempoxyz#7569](tempoxyz#7569) into a standalone change against main. Validated generation of all 12 setup transactions with the emitted `setup.seed_neobank_withdrawals → setup.wrapper` dependency; transaction definitions are otherwise unchanged.
Adds zone deposits/withdrawals at 5%/4% and vault deposits/withdrawals at 6%/4% to
public-mix, matching the requested table; transfers, memo transfers, mints, and open-only MPP remain at 25%/40%/1%/15%. Reuses the zone fixtures merged in #7537 and adds the fixture setup, funding, and per-user/portal weighting needed to compose the workloads.Also leaves the zone account-range placeholder unquoted so environment expansion yields an integer when the multi-region runner loads the preset directly. This corrects the
invalid type: string "1000", expected u32error in the failed comparison.Updated against main to include the merged compact metadata producer from #7663. Preserves this PR’s existing allocation, including memo transfers, as requested. Metadata is extracted after fixture expansion and reports aggregate category weights; the merged perf reader and multi-region sender already support these categories, so no companion changes are needed.
Declares explicit vault and neobank setup dependencies for txgen #214. Independent Zone deployment/funding and per-user approvals can overlap vault initialization, while receipt dependencies protect registry publication, engine binding, factory calls, and neobank position seeding. Use
txgen-ref=c70b70230f37ca5fee2851224b48170a5ca9d269to exercise the new scheduler; this PR depends on that breaking txgen change.The existing
bench-e2e.nu render-txgen-speccommand composes public-mix using the supplied accounts, TPS, and duration; preparation reuses that rendered file unchanged. Other presets retain their existing rendering and pipeline behavior.Validation: rendered and generated setup for 3 users/2 zones and 1,000 users/715 zones (3,451 setup transactions). Compared the original and migrated renderings: transaction definitions, senders, ordering, templates, and exact eight-category weights are unchanged; only dependency metadata differs. The public-mix render command produces identical specifications at both sizes (31 and 3,451 setup transactions), and already-rendered files are reused unchanged. Two mocked-RPC public-mix pipeline repetitions preserve the input and generate workload successfully.
The matched multiregion benchmark reduced mean setup time from 729.81 s to 145.66 s: 5.01× faster, an 80.0% reduction, saving 584.15 s (9m 44s) per setup.
All four measurements completed 3,451 setup transactions successfully, with zero setup failures. Both workflows and their infrastructure teardown completed successfully. Timings come from
Setup transactions completed ... elapsed=...in each phase'stxgen.out; they include setup input reading, validation, submission, and receipt waits, and exclude infrastructure provisioning and subsequent workload execution.Inputs: 10 validators across
us-east-1,eu-central-1, 1,000 users, 715 zones,bloat=1(reported as 1,000 MiB), target 50k TPS, 5,000 concurrent requests, a 30 s workload generation limit, and--defer-signing. Both runs use Tempo node commit8e4c039b96c3e8feb7a59f171d17504de909679fand benchmark runner67ab5444bf0fdf4ff2d4b28eab46e72ead38d3a9. Baseline txgen is466fca39ca26d276c917878b7c34d25523772baa; explicit-dependency txgen isc70b70230f37ca5fee2851224b48170a5ca9d269.Artifact verification confirmed identical rendered transaction definitions and workload weights after removing dependency metadata and normalizing the per-run temporary include directory. Each repetition sent 75–76 workload transactions after setup, all successful, so these measurements establish setup-time improvement for this configuration; they do not establish sustained throughput.
Prompted by: @shekhirin