Firebird transakce podrobně
Firebird transakce do detailu se zabývá multi-versioningem: izolací, markery, commitem a rollbackem, garbage collection, sweepem a diagnostikou problémů s transakcemi v aplikacích.
Osnova
- Jak vznikají verze záznamů
- Stavy transakcí: aktivní, potvrzená, vrácená, limbo
- Viditelnost verzí; Read Committed vs Snapshot
- Triggery při startu/ukončení transakce; kontextové proměnné na úrovni transakce
- Co se děje při startu transakce; globální markery OAT, OST, OIT
- Commit; standardní rollback s flush cache vs vynucený rollback bez flush
- Rollback s undo-logem a bez něj; retenční transakce
- Dočasné BLOBy; undo-log; auto-commit
- Paměť pro transakce; lokální TIP a související problémy
- Jak transakce interagují; konflikty; šablony pro aplikace
- Scénáře: čtenáři/čtenáři, čtenáři/zapisovatelé, zapisovatelé/zapisovatelé; osvědčené postupy
- Garbage collection vs sweep; výhody a nevýhody autosweepu
- Chyby v aplikacích, které vytvářejí nadměrný garbage
- Diagnostika problémů: kombinace OIT/OST/OAT/NEXT; kdy GC neběží
- Kolik garbage; hledání dlouhých transakcí pomocí MON$
- Monitorování pomocí MON$ a Trace API
- Řešení pro starší aplikace s rozbitým zpracováním transakcí