OLTP в Зазеркалье


3.2 Удаление компонентов Shore


В табл.1 резюмируются свойства и характеристики современных систем OLTP (левый столбец), позволяющие удалить из СУБД некоторые функциональные возможности. Эти оптимизации использовались авторами в качестве руководства по модификации Shore. Из-за тесной интеграции всех менеджеров Shore было невозможно точно разделить все компоненты, чтобы их можно было удалять в произвольном порядке. Наилучшим возможным подходом было удаление функциональных возможностей в порядке, диктуемом структурой кода, что обеспечивало некоторую гибкость. Это порядок был следующим:

  1. удаление журнализации;
  2. удаление блокировок ИЛИ защелок;
  3. удаление защелок ИЛИ блокировок;
  4. удаление кода, относящегося к менеджеру буферов.

Таблица 1. Возможный набор оптимизаций для OLTP

Свойства OLTP и новые платформы Модификация СУБД
архитектуры без поддержки журнала удаление журнализации
разделение, коммутативность удаление блокировок (когда это возможно)
поочередное выполнение транзакций однопотоковый режим выполнения, удаление блокировок, удаление защелок
хранение в основной памяти удаление менеджера буферов
нетранзакционные базы данных устранение учета транзакций

Кроме того, авторы обнаружили, что в любой точке процесса удаления компонентов возможны следующие оптимизации:

  • ускорение и жесткое кодирование логики сравнения ключей B-деревьев, как это делается в большинстве коммерческих систем;
  • ускорение поиска в каталогах;
  • увеличение размера страницы для устранения потребности в частом распределении памяти (это предполагается указанным выше Шагом 4);
  • удаление транзакционных сессий (начала транзакции, фиксации, различных проверок).

Далее описывается подход, примененный авторами для реализации упомянутых действий. Вообще говоря, для удаления из системы некоторого компонента либо добавлялись условные операторы, которые позволяют избежать выполнения кода, относящегося к этому компоненту, либо, если добавление условного оператора приводило к ощутимым накладным расходам, методы переписывались целиком для полного устранения вызовов удаляемого компонента.




Начало  Назад  Вперед



Книжный магазин