Skip to content

Add required ci check for keynote-2 benchmark#5078

Merged
joshua-spacetime merged 7 commits into
masterfrom
joshua/keynote-ci-check
May 28, 2026
Merged

Add required ci check for keynote-2 benchmark#5078
joshua-spacetime merged 7 commits into
masterfrom
joshua/keynote-ci-check

Conversation

@joshua-spacetime

@joshua-spacetime joshua-spacetime commented May 19, 2026

Copy link
Copy Markdown
Contributor

Description of Changes

Adds a new required ci check for keynote-2 benchmark regressions. The test runs for 60s and fails if throughput < 300K TPS.

Note, this check will be flaky as long as it's running concurrently with other CI jobs. It may need a dedicated runner/host machine. Although it may be sufficient to only schedule one runner/VM to a single host machine at a time. I'll need to sync with @jdetter to determine the best way forward here.

UPDATE: We're using a dedicated runner. See the Testing section.

API and ABI breaking changes

N/A

Expected complexity level and risk

2

Mainly copy-paste from the other CI workflows.

Testing

This job now uses spacetimedb-benchmark-runner which is entirely dedicated to this one CI job. I've tested this at different times of the day when the CI runners are under load and not. The performance is consistent and the test isn't flaky. It has passed every time.

@joshua-spacetime joshua-spacetime changed the title Add required ci check for keynote-2 benchmark Add required ci check for keynote-2 benchmark May 19, 2026
@joshua-spacetime joshua-spacetime force-pushed the joshua/keynote-ci-check branch from 9b8e2ab to ad299df Compare May 19, 2026 23:55
@joshua-spacetime joshua-spacetime changed the base branch from joshua/batch-server-side-sends to master May 19, 2026 23:56
@joshua-spacetime joshua-spacetime force-pushed the joshua/keynote-ci-check branch 3 times, most recently from 9588d67 to e814040 Compare May 20, 2026 22:28
@joshua-spacetime joshua-spacetime force-pushed the joshua/keynote-ci-check branch from e814040 to f83797b Compare May 21, 2026 22:30
pull Bot pushed a commit to age-rs/SpacetimeDB that referenced this pull request May 28, 2026
…bs#5095)

# Description of Changes

Before this change, we used a single async-enabled wasm runtime for all
requests, even though procedures are the only operation that can yield.
Now each module gets two separate runtimes. We continue to use the same
async runtime for procedures, but now reducers are executed against a
synchronous wasm runtime, backed by a single OS-thread instead of a
Tokio runtime.

The purpose of this change is to remove from the critical path the
overhead associated with async calls that really aren't async at all.

Also includes the following fix from clockworklabs#5135:

> After clockworklabs#4973, WASM procedures can execute concurrently with later
operations on the same WebSocket.

> Before this change, the C# regression testsuite queued several
procedures, then immediately queued `UnsubscribeThen`. After clockworklabs#4973, the
unsubscribe could be applied before the `SubscriptionEventOffset`
procedure callback ran, clearing `MyTable` from the local subscribed
cache. The callback then failed while asserting that the `offset-test:`
row was present.

> This change treats unsubscribe as a separate phase. It is scheduled
after the main work is queued, but only starts once `waiting == 0`, so
all callbacks that inspect subscribed state run before the cache is
cleared.

# API and ABI breaking changes

None

# Expected complexity level and risk

2.5

# Testing

Pure refactor. Relies on current test coverage. clockworklabs#5078 will ensure the
performance is on par with V8.
@joshua-spacetime joshua-spacetime force-pushed the joshua/keynote-ci-check branch from 29ac856 to 098bd98 Compare May 28, 2026 14:17

@bfops bfops left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This LGTM in terms of CI. I can't speak to the correctness of how the benchmark is being run, but it seems to be passing.

@joshua-spacetime joshua-spacetime added this pull request to the merge queue May 28, 2026
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks May 28, 2026
@joshua-spacetime joshua-spacetime added this pull request to the merge queue May 28, 2026
Merged via the queue into master with commit 4cf01ed May 28, 2026
32 checks passed
@joshua-spacetime joshua-spacetime deleted the joshua/keynote-ci-check branch May 28, 2026 19:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants