libdb 2026.08 — serializable snapshot isolation by default
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 underdist/, microbenchmarks undertest/bench/, per-component license texts underLICENSES/, and anrfc/design-proposal process (design notes graduated to RFCs 0001–0003). - Security: hardened the untrusted-
.dbparse/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/benchtargets andcompile_commands.jsonfor 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.