Skip to content

v0.6.0b1

Pre-release
Pre-release

Choose a tag to compare

@jdrumgoole jdrumgoole released this 26 Jul 04:36

What's Changed

  • bench: multi-stage aggregate workload + Phase 6b decision by @jdrumgoole in #571
  • docs: clean unloaded-machine benchmark baseline (writes ~1.4-1.6x mongod) by @jdrumgoole in #572
  • docs: refresh benchmark.md to the post-raw-BSON clean baseline by @jdrumgoole in #574
  • Rust server: WT eviction threads + larger log files (mongod-parity Phase 1) by @jdrumgoole in #575
  • [security-warning] Security Review — 2026-07-20 by @github-actions[bot] in #576
  • Rust server: zlib block compression — mongod-parity Phase 1.5 (+25% single-writer, ~2x scaling) by @jdrumgoole in #578
  • docs: post-compression re-profile + honest scope of the remaining mongod gap by @jdrumgoole in #579
  • docs: the oplog is the #1 mongod-parity bottleneck (A/B-proven) by @jdrumgoole in #581
  • rust: make every collection/cursor/transaction lock poison-tolerant by @jdrumgoole in #583
  • Rust + Python: sharded oplog + bounded prune — 1.77x single / 12x 8-writer writes by @jdrumgoole in #582
  • ci: cargo-audit gate + stop dumping the full security-review transcript (I22, I23) by @jdrumgoole in #585
  • harden three malformed-input paths (security review I1, I16, I21) by @jdrumgoole in #586
  • changelog: correct the oplog-write numbers to a clean idle-machine A/B by @jdrumgoole in #589
  • Python server: capped-collection eviction is now true FIFO by @jdrumgoole in #587
  • docs: 8-writer profile pins the scaling bottleneck (WT block-manager on shared doc table) by @jdrumgoole in #591
  • ci: capture crashed-worker faulthandler stacks as artifacts by @jdrumgoole in #590
  • admin: change-stream tail detects client disconnect + bounds each poll by @jdrumgoole in #588
  • [security-warning] Security Review — 2026-07-21 by @github-actions[bot] in #592
  • Rust + Python: shard the documents table per collection (+19% at 4 concurrent writers) by @jdrumgoole in #594
  • docs: forward plan for Rust->mongod write performance by @jdrumgoole in #596
  • fix: multikey index keys for dotted paths into arrays by @jdrumgoole in #595
  • test: release the admin app payload at fixture teardown (unbounded RSS growth) by @jdrumgoole in #597
  • ci: crash-repro job needs the WiredTiger submodule by @jdrumgoole in #598
  • ci: crash-repro must invoke the venv python directly, and fail on a broken harness by @jdrumgoole in #599
  • fix: create_index must refresh its read snapshot before scanning by @jdrumgoole in #600
  • ci: ws-single confirmation mode; record that the crash is NOT an OOM by @jdrumgoole in #601
  • ci: ws-single must use -n0, and the guard must key on positive evidence by @jdrumgoole in #602
  • docs: lock the mongod gap — parity not reachable (direct A/B verdict) by @jdrumgoole in #604
  • fix(test): bound the websocket receives — this was the recurring worker death by @jdrumgoole in #603
  • [security-warning] Security Review — 2026-07-22 by @github-actions[bot] in #606
  • docs(backlog): complete the ws-crash record — open-race, cross-driver timeout, watchdog flake by @jdrumgoole in #607
  • Rust server: disable WiredTiger log pre-allocation (stop CI disk exhaustion) by @jdrumgoole in #609
  • test: cross-driver smokes need a pytest timeout above their build budget by @jdrumgoole in #605
  • Rust server: checkpoint on clean shutdown (durable-mode parity with Python) by @jdrumgoole in #610
  • Rust server: raw-BSON write path for inserts (~+11% single-writer) by @jdrumgoole in #608
  • Security Review — 2026-07-23 [security-clean] by @github-actions[bot] in #611
  • Rust daemon: default WAL log file_max to 2GB (~+13-19% write throughput) by @jdrumgoole in #612
  • Ops Board: local web app to drive build/test/release for all servers (Phase 1+2) by @jdrumgoole in #615
  • opsboard task: pass through --host / --config / --save by @jdrumgoole in #616
  • Ops Board: graphical job progress bars + full process-tree cancel by @jdrumgoole in #617
  • Ops Board: per-task info dialogs with detail + time estimates by @jdrumgoole in #619
  • fix(jobkit): don't lose a fast child's output from the pty tee by @jdrumgoole in #620
  • test: fix crash-watchdog flake under the full parallel suite by @jdrumgoole in #614
  • test: name the lost documents when an index build races writes by @jdrumgoole in #624
  • Rust storage: RecordId doc-table keying (step 1, 4→3 write-amp) by @jdrumgoole in #613
  • ci: cache cargo registry + target for the Rust jobs by @jdrumgoole in #618
  • docs: Ops Board page (Phase 6) by @jdrumgoole in #627
  • chore: lock the opsboard extra; mark the Ops Board plan complete by @jdrumgoole in #629
  • Ops Board: show gauge scores on the matrix by @jdrumgoole in #630
  • Ops Board: origin flags, CI dispatch, and a running/history split by @jdrumgoole in #631
  • fix(storage): give index DDL the collection lock, and fix an AB-BA lock order by @jdrumgoole in #632
  • docs(recordid): record the measured cost of step 1's extra index hop by @jdrumgoole in #633
  • [security-warning] Security Review — 2026-07-24 by @github-actions[bot] in #634
  • docs: catch the Ops Board page up with the post-Phase-6 features by @jdrumgoole in #636
  • storage: oplog prune reads O(deleted), not O(oplog size) by @jdrumgoole in #638
  • pymongo gauge: --jobs N parallel runs with a server per worker by @jdrumgoole in #623
  • docs(perf): re-baseline concurrency after RecordId — lock-split is done, ceiling is WiredTiger by @jdrumgoole in #639
  • Rust storage: RecordId step 2 — index entries carry the RecordId (removes the IXSCAN hop) by @jdrumgoole in #637
  • Rust storage: RecordId step 3 — capped tailable cursor tracks RecordId, not id_key by @jdrumgoole in #640
  • docs: refresh benchmark numbers to the post-RecordId baseline by @jdrumgoole in #641
  • Rust storage: stop the oplog re-encoding documents it already has (writes → mongod parity) by @jdrumgoole in #642
  • [security-warning] Security Review — 2026-07-25 by @github-actions[bot] in #644
  • Rust storage: async/decoupled oplog (opt-in) — backpressured, with the WT-write-ceiling finding by @jdrumgoole in #645
  • docs(perf): the concurrency ceiling is the shared oplog, not generic WiredTiger by @jdrumgoole in #643
  • Rust storage: SECANTUS_WT_CONFIG_EXTRA tuning hook + WT write-ceiling sweep (Finding 6) by @jdrumgoole in #646
  • RecordId step 4a: the Python doc table is keyed by RecordId by @jdrumgoole in #647
  • RecordId step 4b: Python index entries carry the RecordId by @jdrumgoole in #650
  • RecordId step 4c: the Python tailable cursor tracks RecordId, not id_key by @jdrumgoole in #649
  • docs(perf): refresh the benchmark figures after the RecordId change by @jdrumgoole in #651
  • changelog: fold RecordId Python-migration fragments into 0.6.0b1 by @jdrumgoole in #652
  • tests: serialise crash-watchdog nested runs with a file lock by @jdrumgoole in #653
  • tests: load-tolerant timeout for rust-binary PITR restore by @jdrumgoole in #654
  • tests: prefer release secantusd-rs binary over debug (fixes PITR timeout flake) by @jdrumgoole in #655

Full Changelog: v0.6.0b0...v0.6.0b1