Skip to content

libdb 2026.08 — serializable snapshot isolation by default

Choose a tag to compare

@gburd gburd released this 12 Sep 17:23
· 122 commits to master since this release
v2026.08

Headline: DB_TXN_SNAPSHOT is now serializable

BREAKING (ABI, deliberate). DB_TXN_SNAPSHOT now provides serializable snapshot isolation (SSI) — snapshot isolation plus Cahill serializable conflict detection — and the separate DB_TXN_SNAPSHOT_SAFE flag has been removed. Every snapshot transaction is now serializable, may abort with DB_SNAPSHOT_UNSAFE / DB_SNAPSHOT_CONFLICT, and cannot be prepared for two-phase commit. There is no public non-serializable snapshot-isolation mode. This replaces the awkward _SAFE flag name with the natural DB_TXN_SNAPSHOT.

Migration: code using DB_TXN_SNAPSHOT_SAFE should use DB_TXN_SNAPSHOT; code that relied on DB_TXN_SNAPSHOT for non-serializable SI now gets serializable SI (and must handle the SSI abort return codes / retry).

Also since 5.3.33

  • Documentation rebuilt from Markdown source (docs_src/), single-sourced version/copyright, published to libdb.org as HTML + PDF + man pages; added the Java API reference (regenerated from source) and the C++/Java Getting-Started guide variants; docs-validation CI (build / no-loss / completeness / spelling / links / man-lint).
  • Repo layout: docs_src/, meson under dist/, microbenchmarks under test/bench/, per-component license texts under LICENSES/, and an rfc/ design-proposal process (design notes graduated to RFCs 0001–0003).
  • Security: hardened the untrusted-.db parse/verify surface (type-confusion OOB write, double-free, SIGFPE, infinite-loop DoS) with reproducing fuzz seeds and an ASan-instrumented fuzz gate.
  • Removed the C# language binding entirely.
  • Build: autoconf + meson docs/bench targets and compile_commands.json for LSPs.

Qualified

From a clean clone: autoconf + meson + nix build clean; SSI 001–009 + all four access methods + DST capstones (4/4) + fuzz reproducers (9/9) all pass. CI green (Linux/macOS × gcc/clang, 32-bit, ASan/UBSan, TSan, mutex backends, meson, nix, Windows msbuild, docs).

North star intact: embedded, no server, ACID + WAL + recovery, all four access methods (B-tree/Hash/Queue/Recno + Heap), multi-process shared regions, tiny footprint.