Связывание потоков управления с данными
В DORA рабочие потоки управления связываются с данными путем установки правила маршрутизации (routing rule) для каждой таблицы базы данных. Правило маршрутизации задает отображение наборов записей, или наборов данных (dataset) на рабочие потоки управления, называемые исполнителями (executor). Каждый набор данных приписывается одному исполнителю, и исполнителю может быть приписано несколько наборов данных одной таблицы. Единственное требование к правилу маршрутизации состоит в том, чтобы каждая возможная запись таблицы отображалась в один и только один набор данных. При использовании правил маршрутизации каждая таблица логически разбивается на разъединенные наборы записей. Все данные располагаются в одном и том же буферном пуле, и правила не предполагают какого либо физического разделения или перемещения данных.
Столбцы, используемые в правиле маршрутизации, называются полями маршрутизации (routing field). Поля маршрутизации могут являться любой комбинацией столбцов соответствующей таблицы. Практика показывает, что в качестве полей маршрутизации хорошо работают столбцы первичного или возможного ключа. В примере с транзакцией Payment (платеж) мы предполагаем, что столбец идентификатора склада (Warehouse_id) является полем маршрутизации для каждой из четырех затрагиваемых таблиц. Правила маршрутизации поддерживаются во время выполнения менеджером ресурсов DORA. Для балансировки нагрузки менеджер ресурсов периодически обновляет правила маршрутизации. Менеджер ресурсов изменяет число исполнителей для каждой таблицы в зависимости от размеров таблицы, числа запросов к этой таблице и объема доступных аппаратных ресурсов.