Выполнение транзакций, ориентированное на данные


A.2.1. Балансировка нагрузки


Обычно реакцией системы без совместно используемых ресурсов на несбалансированность нагрузки являются изменение размеров или репликация частей таблиц в каждом разделе. Для изменения размеров частей таблицы такой системе приходится удалить некоторый фрагмент таблицы из одного раздела и вставить его в другой фрагмент. Во время пересылки записей выполнение запросов, содержащих обращения к таблице, размер частей которой изменяется, затруднено. С пересылкой записей связаны ощутимые расходы. Например, для таблицы, размер частей которой изменяется, требуется обновить все индексы. Чем больше записей требуется переслать, или чем больше индексов имеется на таблице, размер частей которой изменяется, тем дороже обходится ее переразделение.

С другой стороны, в DORA несбалансированность нагрузки устраняется путем изменения правила маршрутизации каждой таблицы и создания новых исполнителей, если это требуется. Менеджер ресурсов DORA отслеживет загрузку каждого исполнителя и реагирует на ситуацию, когда средняя нагрузка, назначаемая некоторому исполнителю, непропорционально больше нагрузки всех остальных исполнителей. Типичная реакция состоит в таком изменении размеров наборов данных, назначенных каждому исплнителю, чтобы нагрузка сбалансировалась.

Каждое изменение правила маршрутизации задевает двух исполнителей: того, область ответственности которого сокращается, или сокращаемого исполнителя (shrinking executor), и того, которому назначается большая доля таблицы, или расширяемого исполнителя (growing executor). Для изменения размеров наборов данных менеджер ресурсов ставит во входные очереди каждого из этих двух исполнителей некоторое системное действие и модифицирует правило маршрутизации. Когда это системное действие выбирается сокращаемым исполнителем, он прекращает обслуживать новые действия до тех пор, пока систему не покинут все действия, уже обслуженные этим исполнителем. Иначе говоря, сокращаемому исполнителю нужно завершить все выполняемые действия. Иначе он мог бы выполнить действия, направленные на модификацию части данных, за которые после изменения размеров отвечает расширяемый исполнитель.


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