Деталі транзакцій Firebird
Транзакції Firebird детально - це про багатоверсійність: ізоляцію, маркери, commit і rollback, збір сміття, sweep, а також про те, як діагностувати проблеми з транзакціями в застосунках.
Програма курсу
- Як створюються версії записів
- Стани транзакцій: активна, зафіксована, відкочена, limbo
- Видимість версій; Read Committed проти Snapshot
- Тригери на початок/завершення транзакції; контекстні змінні рівня транзакції
- Що відбувається на початку транзакції; глобальні маркери OAT, OST, OIT
- Commit; стандартний rollback зі скиданням кешу проти примусового rollback без скидання
- Rollback з undo-log та без нього; утримувані транзакції
- Тимчасові BLOB-и; undo-log; авто-commit
- Пам'ять для транзакцій; локальний TIP та пов'язані проблеми
- Як транзакції взаємодіють; конфлікти; шаблони для застосунків
- Сценарії: читачі/читачі, читачі/письменники, письменники/письменники; найкращі практики
- Збір сміття проти sweep; плюси та мінуси autosweep
- Помилки застосунків, що створюють надмірне сміття
- Діагностика проблем: комбінації OIT/OST/OAT/NEXT; коли GC не запускається
- Скільки сміття; пошук довгих транзакцій за допомогою MON$
- Моніторинг за допомогою MON$ та Trace API
- Обхідні шляхи для застарілих застосунків із порушеною обробкою транзакцій