Contact Us | Site Map
Firebird is used by approximately 1 million of software developers worldwide. High compatibility with industry standards on many fronts makes Firebird the obvious choice for developing interoperable applications for homogeneous and hybrid environments.
Join Firebird!
Join Firebird Foundation to support Firebird SQL development and receive multiple bonuses
Follow Us
Select your media preference
Google+ Twitter Facebook RSS
Newsletter
Subscribe to Firebird’s Newsletter to receive the latest news
Firebird Tour: Moscow, June 4, 2014
Приглашаем 4 июня 2014 г. на семинар по СУБД Firebird, посвященный транзакциям.

Цель семинара
— полностью рассмотреть работу транзакций в Firebird, понять, как влияют транзакции на производительность системы, как работает система сборки мусора, и как использовать эти знания для оптимизации производительности своих приложений.
Семинар пройдет в г. Москва, метро Калужская, Научный проезд, 20, Технопарк "Слава", с 9-30 до 17-30.

Основные докладчики семинара:
  • Влад Хорсун, Firebird Project
  • Дмитрий Кузьменко, IBSurgeon/IBase
  • Алексей Ковязин, IBSurgeon/IBase
  • также ожидаются А. Пешков и Д. Еманов
Семинар проходит в рамках мирового тура (предыдущие семинары прошли в Зигбурге, Германия и Праге, Чехия).

Спонсоры тура: IBSurgeon/IBase и IBPhoenix. Партнер российского семинара: компания Ansoft, производитель ПО AVARDA.

Участие в семинаре

Участие в семинаре платное. Стоимость участия: 37 евро (1900 рублей) для 1 человека, 99 евро (5000 рублей) для группы из 3 человек.

Оплата регистрационного взноса:
(используйте валюту евро или доллары, т. к. пересчет в рубли в магазине проводится по завышенному курсу).
  • Если Вы желаете оплатить семинар от российского юридического лица, пришлите список участников на sales@ibase.ru для получения договора и счета на оплату.
Как добраться

Адрес: Москва, Научный проезд 20 строение 2, Технопарк Слава.

http://maps.yandex.ru/-/CVf~bZNN

  • м. Калужская, выход из головного вагона (в сторону ул. Обручева), и направо.
  • Идете по улице Обручева мимо ТЦ "Калужский" (оранжевое здание), до Научного проезда.
  • На перекрестке поверните налево, и мимо ювелирного завода, до проходной Технопарк Слава (здание технопарка за проходной, красно-белое).
  • Время в пути — примерно 15-20 минут.
На проходной будут списки участников (нужен паспорт!). Конференц-зал находится в здании на втором этаже.

Подробный план семинара по транзакциям

1. Обзор понятия транзакций, параметры транзакций 

  1. Исторический экскурс в транзакции (блокировочники, dirty read, почему в FB только snapshot и read_committed
  2. Транзакция — логический кусок, объединяющий группу действий (успешных и неуспешных)
  3. Свойства транзакций — ACID
  4. Уровни изолированности — стандартные и как в ФБ, с примерами
  5. read only\write
  6. wait и nowait
  7. Простые примеры, поясняющие суть уровни изолированности с т.з. клиента, без деталей относительно ТИП
  8. Стандартная картинка взаимодействия транзакций

 2. Транзакции в Firebird — отличия и особенности от стандартных

  1. Полный синтаксис SET TRANSACTION, соответствие параметрам TPB
  2. недокументированные (в IB) возможности
  3. Откуда берутся тр-ции, или кто их создаёт
    1. Приложение
    2. Системная тр-ция (тр-ция №0)
    3. Тр-ция сборщика мусора
    4. Автономные тр-ции — автостарт/автофиниш логгирование
    5. Тр-ция для триггеров ON CONNECT\ON DISCONNECT
  4. Простое объяснение версионности (с картинками)
  5. Как возникают версии
  6. Состояния транзакций (active, committed, rolled back, limbo)
  7. Разница между Read Committed и Snapshot?
  8. Взаимодействие между транзакциями с учетом маркеров: что такое OIT, OST, OAT, Next
  9. Триггеры на события старта и стопа тр-ции
  10. Контекстные переменные уровня тр-ции
  11. Маркеры транзакций, картинка маркеров

 3. Реализация транзакций в Firebird

  1. Что происходит при старте тр-ции
    1. вычисление глобальных счётчиков (OAT, OST, OIT) и что они вообще означают
    2. старт авто-свипа
  2. Что происходит при коммите
    1. работа DWF
    2. фактическое выполнение DDL запросов — как и когда
    3. рассылка ивентов
    4. сброс грязных страниц
    5. отметка в TIP
  3. Что происходит при роллбеке
    1. штатный роллбек со сбросом кеша
    2. форсированный роллбек без сброса кеша
    3. отмена действий тр-ции с помощью анду-лога
    4. роллбек без помощи анду-лога
  4. Что такое retaining, что он делает и что он НЕ делает
  5. Авто-коммит (кто-нибудь вообще знает об этой фиче?)
  6. Управление потенциально большими объёмами памяти, связанной с тр-цией
    1. временные блобы
    2. анду-лог
  7. локальная копия TIP 
  8. Способность GTT быть модифицируемыми в read-only тр-циях

 4. Взаимодействие транзакций и примеры шаблонов для разработки клиентских приложений. Разбор возможных конфликтов

  1. читатель и читатели — ок (снепшот тото, рид-коммитед рид онли)
  2. читатель и писатель — несколько вариантов
  3. писатель и писатель — разбор конфликтов
  4. Советы по использованию транзакций:
    1. Справочники
    2. Разделение читающей и пишущей транзакции
    3. Блокирование записи путем холостого апдейта
    4. Блокирование SELECT WITH LOCK
    5. Рид-коммитед no_rec_version nowait — будет ждать коммит, rec_version
    6. Отчеты-снепшоты

 5. Механизм работы сборки мусора и sweep

  1. зачем нужна сборка мусора
  2. как она проходит (свертывание версий)
  3. какая бывает сборка — кооперативная, фоновая, комбинированная
  4. свип и сборка мусора 
  5. автосвип — положительные свойства и недостатки
  6. примеры неправильной работы приложений, которая приводит к накоплению мусора
    1. слишком длительные пишущие транзакции 
    2. в Классике отсутствие чтения записей, которые были обновлены или удалены (больше работы для свипа).

 6. Возможности управления транзакциями и их параметрами из компонент доступа и драйверов

  1. “Непрямые” компоненты доступа и драйверы — BXE, dbExpress, ODBC, .Net Provider
  2. Прямые компоненты доступа — IBX, FIBPlus, FireDAC
  3. Управление транзакциями в приложениях. Примеры и практика
  4. Управление длительностью транзакций в различных компонентах доступа.
  5. Варианты реализации окон редактирования данных — когда стартовать и завершать транзакции
  6. Дву-транзакционные компоненты
  7. Завершение транзакций по retaining

7. Определение проблем в управлении транзакциями. Диагностика проблем с транзакциями и практика их разрешения

  1. Анализ gstat -h
  2. OIT, OST, OAT, NEXT — типичные сочетания, что происходит
  3. Сочетания, при которых не происходит автоматическая сборка
  4. Подпорка и как ее создать
  5. IBTM и изменение в динамике маркеров. Моменты свипа
  6. Большая дыра между ОИТ и ОСТ не означает мусора в БД, обозначает вероятность. 
  7. Если маркеры не сильно отличаются, мусор может
  8. Борьба с неуправляемыми legacy-приложениями. “Подпорка” Профитмеда.
  9. Если разница большая, то мусор не собирался, если разница маленькая (меньше дневного интервала), то мусора собирался.
  10. Анализ gstat -r — можно узнать количество мусора, примеры c IBAnalyst
  11. Обнаружение накопления версий при помощи IBAnalyst. Как и когда снимать статистику gstat -r
  12. Типичные ошибки в управлении транзакциями.
  13. IBTM — мониторинг транзакций, анализ статистики, поиск странных и узких мест (аналог в FBDataGuard)
  14. mon$ — поиск длительных транзакций, соединений, выполняемых в транзакциях запросов. Использование MonLogger.
  15. Trace API
Home About Firebird Documentation Downloads Community Support Development Case Studies Back to Top
This site and the pages contained within are Copyright © 2000-2014, Firebird Project. Firebird® is a registered trademark of Firebird Foundation Incorporated. Developed by DQ Team.