Dettagli sulle transazioni Firebird
Le transazioni Firebird in dettaglio riguarda il multi-versioning: isolamento, marcatori, commit e rollback, garbage collection, sweep e come diagnosticare i problemi delle transazioni nelle applicazioni.
Programma
- Come vengono create le versioni dei record
- Stati delle transazioni: attiva, committata, rollback, limbo
- Visibilità delle versioni; Read Committed vs Snapshot
- Trigger su inizio/fine transazione; variabili di contesto a livello di transazione
- Cosa succede all'inizio della transazione; marcatori globali OAT, OST, OIT
- Commit; rollback standard con flush della cache vs rollback forzato senza flush
- Rollback con e senza undo-log; transazioni retaining
- BLOB temporanei; undo-log; auto-commit
- Memoria per le transazioni; TIP locale e problemi correlati
- Come interagiscono le transazioni; conflitti; modelli per le applicazioni
- Scenari: lettori/lettori, lettori/scrittori, scrittori/scrittori; migliori pratiche
- Garbage collection vs sweep; pro e contro dell'autosweep
- Errori applicativi che creano garbage eccessivo
- Diagnosi dei problemi: combinazioni OIT/OST/OAT/NEXT; quando la GC non viene eseguita
- Quanto garbage; individuare transazioni lunghe con MON$
- Monitoraggio con MON$ e Trace API
- Soluzioni per applicazioni legacy con gestione delle transazioni non corretta