Skip to content

v3.42.0

Choose a tag to compare

@github-actions github-actions released this 11 Jun 00:43
· 393 commits to main since this release

Minor release: the plan-arm INSERT fsync fix (roadmap item R1.1) — the
single largest durable-write win since the P0 series.

Fixed — Write path / durability

  • INSERT statements that take the planner path (RETURNING, ON CONFLICT,
    DEFAULT, expression values — the default shapes from SQLAlchemy, Rails,
    Drizzle, and friends) no longer pay up to two fsyncs per row under the
    default wal_sync_mode = "sync". Row ids come from the volatile counter
    (staged in the transaction or flushed with a non-synced put after the
    row write), and plan-arm logical-WAL appends use the established nosync
    gate; strict per-statement durability remains opt-in via
    storage.logical_wal_per_statement.
  • Measured on an 11ms-fsync disk: INSERT ... RETURNING went from
    34 rows/s to ~9,500 rows/s (~280x); in-memory the same shape gained
    ~50% from the removed per-row counter write.
  • Crash-recovery contract unchanged: wal_crash_recovery (18) and
    crash_recovery_e2e (4) suites green; counters recover from flushed
    counter: keys exactly like the existing fast INSERT path.