Skip to content

Commit 576934c

Browse files
committed
Preserve active benchmark cohorts across automatic pushes
Automatic main pushes must queue behind an active benchmark cohort instead of discarding its unfinished measurements. Manual dispatches still supersede old runs, and intentional replacement after a repair cancels the obsolete run first. Upload partial original worker reports and logs on cancellation without finalizing or qualifying them. Publication still requires complete valid evidence. Reference the canonical runner policy from session documentation. Verified: actionlint, repository governance and diff whitespace checks. This checkpoint changes workflow and documentation only. Earlier full Debug build and exact-source Linux native controls passed; 27 external workers from run40555053148 were verified before another push cancelled the last three.
1 parent bb60482 commit 576934c

2 files changed

Lines changed: 13 additions & 7 deletions

File tree

‎.github/workflows/benchmarks.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ on:
1212
permissions: {contents: read, actions: read}
1313
concurrency:
1414
group: keyload-benchmarks-${{ github.ref }}
15-
cancel-in-progress: true
15+
cancel-in-progress: ${{ github.event_name == 'workflow_dispatch' }}
1616
env:
1717
NUGET_PACKAGES: ${{ github.workspace }}/artifacts/benchmark-runtime/packages
1818
jobs:
@@ -177,7 +177,7 @@ jobs:
177177
KEYLOAD_WORKLOAD_OUTCOME: ${{ steps.workload.outcome }}
178178
run: node scripts/Features/BenchmarkComparisons/session-finalize.mjs
179179
- name: Save benchmark results
180-
if: ${{ !cancelled() }}
180+
if: ${{ always() }}
181181
uses: actions/upload-artifact@v7
182182
with:
183183
name: ${{ matrix.artifactName }}

‎docs/Features/BenchmarkComparisons/SessionExecution.md‎

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -174,8 +174,13 @@ matrix, restarts or separate benchmark scenario.
174174
other databases, workload fan-out or public figures. This focused check does not
175175
qualify the full eight-control gate or complete session suite; those gates stay
176176
unchanged for `mode=contracts`, `mode=full` and push runs.
177-
A newer run of the same branch cancels the superseded run instead of waiting
178-
behind its measurements, including when changing between manual modes and full runs.
177+
All modes share one branch concurrency group. A manual dispatch cancels the
178+
superseded run, including when changing between manual modes and full runs.
179+
Automatic push runs preserve the active cohort and queue the newest pending
180+
revision, so another change cannot discard hours of unfinished measurements.
181+
Intentional replacement after a repair cancels the obsolete run first.
182+
Workers retain partial original reports and logs on cancellation; those artifacts
183+
remain incomplete evidence and cannot authorize publication.
179184
- Ingestion at 1/10/500 clients, the minimum measured operation counts, recall,
180185
replicated acknowledgement, resource bounds and all required workload families are
181186
kept. The number of jobs is not the number of measured scenarios.
@@ -250,9 +255,10 @@ its byte size remain reviewable when several database containers are running.
250255

251256
Local execution retains the actual client binary/source/process identity with no
252257
invented GitHub provenance; every database server, KeyLoad included, is identified
253-
by its image reference and digest. Session and aggregation jobs declare the
254-
explicit `ubuntu-24.04` runner: the `ubuntu-latest` image moved to Ubuntu 26.04 with a
255-
7.0 kernel that the pinned MongoDB server refuses to start on. It cannot authorize public figures. External
258+
by its image reference and digest. Preparation, session and aggregation jobs use
259+
the common runner family documented in
260+
[Additional Databases](AdditionalDatabases.md#deployment-and-qualification-limits).
261+
Local execution cannot authorize public figures. External
256262
advertised-endpoint reachability remains open until actual execution proves it;
257263
measured workload reports do not close that independent gate.
258264

0 commit comments

Comments
 (0)