Skip to content

Berkeley DB (libdb) 5.3.30

Choose a tag to compare

@gburd gburd released this 25 Jul 15:55

First community fork release carrying substantive engine work on top of the
5.3.x lineage. Oracle's last release was 5.3.28; the v5.3.29 tag marks the
vendor-import base (before any fork work), so 5.3.30 is the first fork release
with new engine code
.

Not affiliated with or endorsed by Oracle Corporation. Releases v5.3.29+
are community fork releases, not Oracle artifacts.

Highlights

Serializable Snapshot Isolation (SSI)

Opt-in DB_TXN_SNAPSHOT_SAFE transaction mode that prevents snapshot-isolation
anomalies (e.g. write-skew) by detecting dangerous read/write dependency
structures and aborting the pivot with DB_SNAPSHOT_CONFLICT.

  • Both of Cahill's rw-conflict detection mechanisms: the lock-table path and
    the mp_fget MVCC version-chain path (catches conflicts a concurrent writer
    commits before the read).
  • Race-free commit-time pivot check (serialized on the txn region).
  • Bounded, incremental SIREAD-marker reclaim (not just at checkpoint).
  • prepare()/2PC rejected until SSI-at-prepare is designed.
  • Concurrent-writer safe: a family of pre-existing SIREAD marker/locker/
    detail use-after-free bugs — most importantly a lock object reclaimed while it
    still held SIREAD markers — was found with ThreadSanitizer/AddressSanitizer
    and fixed. Guarded by ssi001ssi009, including a multi-process
    concurrent-writer stress test with post-run db_verify.
  • Abort-rate benchmark added (lab/bench/ssi_abort_bench).

Build

  • Autoconf header-dependency tracking (GCC/Clang -MMD -MP): editing a
    shared header now rebuilds every dependent object, eliminating a class of
    silent stale-object struct-layout corruption.

Other fixes

  • B-tree NULL-page __memp_fput in __bam_get_root under MVCC write contention.

Still experimental

SSI's page-granularity conflict tracking can raise abort rates under contention;
HA/replication qualification is still being built.

See ROADMAP.md.