Repository navigation
perf: publish controlled release benchmark evidence - #94
Merged
Merged
Conversation
Select common counter scenarios and explicitly configure the SQLite synchronization setting without patching the measured runtime source. Keep the full benchmark matrix as the default.
Publish the isolated 1.0.5 baseline instead of leaving readers with only busy-workstation numbers. Keep historical measurements labeled and add CI checks against misreported versions and incomplete cloud evidence.
[Low impact] The PR appears safe to merge; the requested guard-clause fix is complete. SummaryPublishes controlled release comparisons and the retained isolated baseline, while keeping historical measurements and failed attempts separate.
Diagram%%{init: {'theme': 'neutral'}}%%
flowchart LR
A[Archived plan and raw reports] --> B[Check reports]
B --> C[Find fully completed backends]
C --> D[Calculate summary tables]
D --> E[Check published tables]
F[Readiness and teardown records] --> E
Reviews (3) · Last reviewed commit: "refactor: use guard clauses in validateC..." · Reviewed by Greptile |
|
Docs7 for cardmagic/solid-objects-js
Commit |
Compare README tables with regenerated data, verify sustained quiet periods and downloaded archive evidence, and exercise the controlled publication branch against missing samples and mixed provenance.
Derive guide headlines from the same raw datasets as the full result tables. Check both in CI so hand edits cannot introduce stale numbers or confuse measurements from different releases and environments.
Publish all pilot diagnostics separately from completed datasets. Keep its original operation count and stop reason visible, and prevent an incomplete attempt from also being registered as a completed comparison.
cardmagic
marked this pull request as ready for review
November 9, 2026 14:14
Owner
Author
validateComparison refuses a SQLite variant without durability, an unknown synchronous option and durability that differs from that option, and it skips variants that do not use SQLite. No test reached these rules directly, so a refactor of the checks could change them without a failure.
The SQLite durability checks nested the synchronous check inside the SQLite branch, against the repository rule for guard clauses. The loop now skips variants that do not use SQLite and variants without a synchronous option with continue. The rules stay the same, and the new durability tests pass before and after.
Owner
Author
Merge main's 1.0.7 release updates while keeping the benchmark notes under Unreleased. Retain the measured versions in every archived report. See #94
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The benchmark guide mixed release questions with results from different machines and left a completed isolated baseline unpublished. Replace that ambiguity with versioned datasets, controlled release comparisons and CI-checked tables, while preserving every historical measurement and failed attempt.
Publish the retained isolated 1.0.5 baseline plus two new comparisons:
Both comparisons use five fresh-process report rounds, 500 operations after 100 warmups, four workers, synchronous counters, three identity shapes and concurrency 1/16. Node, compiler, dependencies, harness and SQL durability are held fixed within each comparison. Release wake-up defaults and the NORMAL durability tradeoff are documented.
The SQLite data does not reproduce the apparent 25-fold regression: concurrency-16 hot-actor medians are 168.43 ops/s for 0.14.0 and 166.35 for 1.0.5. Version 1.0.6 reaches 343.35 with WAL/FULL and 549.58 with WAL/NORMAL. PostgreSQL has workload-specific gains and declines, including a roughly 20% hot-actor decline and 33% warm-many median gain from 0.14.0 to 1.0.5. Modern MySQL concurrency-16 throughput medians are within 1.3%; its warm-many p99 medians remain high and variable (1.90 versus 2.95 seconds). The guide reports these limitations explicitly.
Move the busy-Mac/August tables to a historical appendix without changing their values. Add a catalog, generated headline checks, maximal complete-backend derivation, provenance/workload/percentile/durability/readiness/lifecycle validation, and future release evidence rules. Future droplets rerun previous and candidate releases together; a machine size alone is not a comparison baseline.
Validation: full checks and formatting pass; 855 tests pass with 32 skipped. Source/harness hashes and compiled artifacts were independently reproduced for all 103 emitted reports across the two new attempts. Exported files match their public copies. Both archives were checksum-verified and all three benchmark droplets, including the feasibility pilot, are confirmed deleted.
The companion private runner PR retains the reproducible provisioning, readiness, collection, recovery and teardown process. This PR changes benchmark tooling and documentation; runtime behavior and package versions are unchanged.