Firebird transactions in details is about multi-versioning: isolation, markers, commit and rollback, garbage collection, sweep, and how to diagnose transaction problems in applications.

About 3-4 hours · English · For developers · All courses

Syllabus

  • How record versions are created
  • Transaction states: active, committed, rolled back, limbo
  • Visibility of versions; Read Committed vs Snapshot
  • Triggers on transaction start/stop; transaction-level context variables
  • What happens at transaction start; global markers OAT, OST, OIT
  • Commit; standard rollback with cache flush vs forced rollback without flush
  • Rollback with and without undo-log; retaining transactions
  • Temporary BLOBs; undo-log; auto-commit
  • Memory for transactions; local TIP and related issues
  • How transactions interact; conflicts; templates for applications
  • Scenarios: readers/readers, readers/writers, writers/writers; best practices
  • Garbage collection vs sweep; autosweep pros and cons
  • Application mistakes that create excessive garbage
  • Diagnosing problems: OIT/OST/OAT/NEXT combinations; when GC does not run
  • How much garbage; finding long transactions with MON$
  • Monitoring with MON$ and Trace API
  • Workarounds for legacy applications with broken transaction handling