Skip to content

Commit 5bb0234

Browse files
shared-log: add sync batch-sweep benchmark and CI gate
1 parent cc6e723 commit 5bb0234

File tree

8 files changed

+528
-14
lines changed

8 files changed

+528
-14
lines changed

.github/workflows/benchmarks.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,10 +161,16 @@ jobs:
161161
RIBLT_SIZES: "1000,10000,50000"
162162
RIBLT_WARMUP: "2"
163163
RIBLT_ITERATIONS: "10"
164+
SWEEP_BATCH_SIZES: "256,512,1024,4096,16384,65536"
165+
SWEEP_ENTRY_COUNT: "20000"
166+
SWEEP_WARMUP_RUNS: "0"
167+
SWEEP_RUNS: "1"
168+
SWEEP_TIMEOUT: "120000"
164169
run: |
165170
mkdir -p "$GITHUB_WORKSPACE/bench-results/base"
166171
node --loader ts-node/esm ./benchmark/rateless-iblt-startsync-cache.ts > "$GITHUB_WORKSPACE/bench-results/base/rateless-iblt-startsync-cache.json"
167172
node --loader ts-node/esm ./benchmark/rateless-iblt-sender-startsync.ts > "$GITHUB_WORKSPACE/bench-results/base/rateless-iblt-sender-startsync.json"
173+
node --loader ts-node/esm ./benchmark/sync-batch-sweep.ts > "$GITHUB_WORKSPACE/bench-results/base/sync-batch-sweep.json"
168174
node --loader ts-node/esm ./benchmark/pid-convergence.ts > "$GITHUB_WORKSPACE/bench-results/base/pid-convergence.json"
169175
170176
- name: Run shared-log benchmarks (head)
@@ -176,10 +182,16 @@ jobs:
176182
RIBLT_SIZES: "1000,10000,50000"
177183
RIBLT_WARMUP: "2"
178184
RIBLT_ITERATIONS: "10"
185+
SWEEP_BATCH_SIZES: "256,512,1024,4096,16384,65536"
186+
SWEEP_ENTRY_COUNT: "20000"
187+
SWEEP_WARMUP_RUNS: "0"
188+
SWEEP_RUNS: "1"
189+
SWEEP_TIMEOUT: "120000"
179190
run: |
180191
mkdir -p "$GITHUB_WORKSPACE/bench-results/head"
181192
node --loader ts-node/esm ./benchmark/rateless-iblt-startsync-cache.ts > "$GITHUB_WORKSPACE/bench-results/head/rateless-iblt-startsync-cache.json"
182193
node --loader ts-node/esm ./benchmark/rateless-iblt-sender-startsync.ts > "$GITHUB_WORKSPACE/bench-results/head/rateless-iblt-sender-startsync.json"
194+
node --loader ts-node/esm ./benchmark/sync-batch-sweep.ts > "$GITHUB_WORKSPACE/bench-results/head/sync-batch-sweep.json"
183195
node --loader ts-node/esm ./benchmark/pid-convergence.ts > "$GITHUB_WORKSPACE/bench-results/head/pid-convergence.json"
184196
185197
- name: Run document benchmarks (base)
@@ -243,6 +255,11 @@ jobs:
243255
base: 'bench-results/base/rateless-iblt-sender-startsync.json',
244256
head: 'bench-results/head/rateless-iblt-sender-startsync.json',
245257
},
258+
{
259+
title: 'shared-log: sync catch-up batch sweep (including large-edge batch)',
260+
base: 'bench-results/base/sync-batch-sweep.json',
261+
head: 'bench-results/head/sync-batch-sweep.json',
262+
},
246263
{
247264
title: 'shared-log: PID convergence (model)',
248265
base: 'bench-results/base/pid-convergence.json',

.github/workflows/ci.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,3 +154,40 @@ jobs:
154154
--assertMaxOrphanArea 10 \
155155
--assertRecoveryP95Ms 750 \
156156
--assertMaxReparentsPerMin 180
157+
158+
shared_log_sync_batch_gate_pr:
159+
if: github.event_name == 'pull_request'
160+
name: Shared Log Sync Batch Gate (PR)
161+
runs-on: ubuntu-22.04
162+
timeout-minutes: 25
163+
env:
164+
PEERBIT_TEST_SESSION: mock
165+
NODE_OPTIONS: --no-warnings
166+
SWEEP_BATCH_SIZES: "512,1024,16384"
167+
SWEEP_ENTRY_COUNT: "20000"
168+
SWEEP_WARMUP_RUNS: "0"
169+
SWEEP_RUNS: "1"
170+
SWEEP_TIMEOUT: "120000"
171+
SWEEP_ASSERT_MAX_RATIO: "8"
172+
SWEEP_ASSERT_REQUIRE_STARTSYNC_FOR_BATCH_GTE: "512"
173+
SWEEP_ASSERT_MAX_MEAN_MS: "512:90000,1024:90000,16384:90000"
174+
steps:
175+
- uses: actions/checkout@v4
176+
- uses: pnpm/action-setup@v4
177+
with:
178+
run_install: false
179+
- uses: actions/setup-node@v4
180+
with:
181+
node-version: 22.x
182+
cache: pnpm
183+
cache-dependency-path: pnpm-lock.yaml
184+
- name: Install deps
185+
run: |
186+
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
187+
pnpm install --frozen-lockfile=false
188+
- name: Build shared-log workspace
189+
run: |
190+
pnpm --filter @peerbit/shared-log... run build
191+
- name: Run shared-log sync batch sweep gate
192+
run: |
193+
pnpm -C packages/programs/data/shared-log exec node --loader ts-node/esm ./benchmark/sync-batch-sweep.ts

0 commit comments

Comments
 (0)