Berkeley DB (libdb) 5.3.30
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
themp_fgetMVCC 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 byssi001–ssi009, including a multi-process
concurrent-writer stress test with post-rundb_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_fputin__bam_get_rootunder 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.