You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 21072b6
Browse filesBrowse the repository at this point in the historyBrowse files
Classify loading and queue operations as writes and reads
Include loading and publishing in Write and every query/receive case in Read. Show RabbitMQ publish and receive throughput from completed full cycles, with explicit cycle labels, and keep one row per database.
Verified: 28 WebsiteTests, scoped formatting, static build/governance and browser checks of all 16 databases plus queue values/sorting on desktop/mobile. Full solution restore, build and formatting verification were still running at this checkpoint.
Copy file name to clipboardExpand all lines: site/Features/BenchmarkComparisons/protocol.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -46,7 +46,9 @@ The builder validates the merged file with the same contract, renders the benchm
46
46
47
47
`results-summary.mjs` derives each global rate from the original result files: sum of completed operations divided by sum of measured seconds for the recorded cases in that metric and node count. It does not average rounded rates. Each topology line shows the case count used. Different databases can cover different workloads; the type tables retain the matched scenarios and exact recorded values.
48
48
49
-
The global metrics map load to Load; update/set/append to Write; point-read/get/pk-select/neighbors/range-read/read to Read; range-query/range-select/traverse/exact-top10/term-query/and-query/aggregate/windows/group-by/filtered-aggregate to Search; delete to Delete; and mixed/cycle to Mixed. A queue cycle is not split into invented independent read or write rates. Index build is a one-time duration and remains in the Search type table.
49
+
The global metrics classify operations by what they do. Load remains the bulk-loading column and also contributes to Write, alongside update/set/append and queue publishing. Read includes point-read/get/pk-select/neighbors/range-read/read, all query/search/aggregate cases and queue receiving. The query/search/aggregate cases also contribute to Search. Delete remains its own metric; mixed/cycle contribute to Mixed. A case is counted once within each metric, even when it contributes to multiple different metrics. Index build is a one-time duration and remains in the Search type table.
50
+
51
+
Each completed queue cycle contains exactly one publish, one receive and one ACK, as defined by `QueueScenario.CycleAsync`. Therefore completed cycles divided by the full measured cycle duration is also the observed publish rate and receive rate in that workload. Write and Read both show this recorded-workload rate with a visible "Full queue cycle" label (or "Includes queue cycle" when combined with other cases). No independent publish/receive duration is inferred and the cycle is not multiplied by two. The same rule applies to RabbitMQ and KeyLoad.
50
52
51
53
Only recorded jobs contribute to a summary. A recorded job's failed case or job-level error makes that metric read Failed with its error; an absent case within a recorded job reads No data. A metric without a recorded case or a positive measured duration has no number. A dash means the database's declared types have no case for that metric. Missing jobs do not become zero. All original cases and errors remain in the recorded-values tables and the unchanged downloadable results file.
h('p',null,model.results.length===0 ? 'No results in this run.' : subtitle(model.results)),
208
210
model.summary ? h('p',{class: 'metric-note'},
209
-
'Each database appears once. Rates combine recorded cases: total completed operations divided by total measured seconds. Case counts show coverage; type tabs show the original workloads. The 3-node change is shown only for matching case coverage.') : null),
211
+
'Each database appears once. Write includes data loading and publishing; Read includes queries and receiving. Rates use completed operations divided by measured seconds. Queue write/read rates include the full publish/receive/ACK cycle. Case counts show coverage; type tabs retain the original cases.') : null),
210
212
h('p',{class: 'table-scroll-hint'},`Sorted by ${type.cases[0].label}, fastest first (1 node). Select a column to sort. Swipe or scroll horizontally to see all columns.`),
0 commit comments