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