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


Поток управления для транзакции или поток управления для данных? - часть 2


Как показывает рис. 1(b), в общем времени работы системы быстро начинает доминировать конкуренция внутри менеджера блокировок. Каждый из 64 аппаратных контекстов тратит более 85% своего времени выполнения на потоки управления, ожидающие входа в критические участки внутри менеджера блокировок.

Основываясь на том наблюдении, что некоординированный доступ к данным приводит к высокому уровню конкуренции, мы предлагаем для снижения этого уровня архитектуру системы, ориентированную на данные (data-oriented architecture, DORA). Вместо связывания каждого потока управления с некоторой транзакцией, в DORA каждый поток управления связывается с некоторой отдельной частью базы данных. Транзакции переходят из одного потока управления в другой поток, когда им требуется обращаться к другим данным; мы называем этот механизм назначением потоков управления данным. DORA разбивает транзакции на более мелкие действия в соответствии с тем, к каким данным они обращаются, и направляет их для выполнения в соответствующие потоки управления. По сути, вместо "вытягивания" (pull) данных (записей базы данных) к вычислениям (транзакциям) DORA распределяет вычисления в соответствии с отображением данных на потоки управления.

В системе, основанной на назначении потоков управления данным, можно использовать регулярные паттерны доступа к данным, что снижает нагрузку конфликтующих компонентов. В DORA каждый поток управления координирует доступ к своей части данных с использованием частного механизма блокировок. За счет ограничения взаимодействий потоков управления с централизованным менеджером блокировок DORA устраняет конкуренцию внутри него (рис. 1(с)) и обеспечивает лучшую масштабируемость (рис 1(a)).

Рис. 2. Распределение времени традиционной системы обработки транзакций и прототипа DORA при полном использовании всех 64 аппаратных контекстов чипа Sun Niagara II при пропуске (a) тестового набора TM1 и (b) транзакций OrderStatus тестового набора TPC-C.

В DORA используется высокопропускной механизм коммуникаций с малыми задержками между ядрами многоядерной системы.Транзакции переходят от одного потока управления к другому потоку с минимальными накладными расходами, поскольку в каждом потоке управления производится доступ к отдельной части базы данных. На рис. 2 сравнивается распределение времени традиционной системы управления транзакциями и прототипной реализации DORA при использовании всех 64 аппаратных контекстов чипа Sun Niagara II при пропуске тестового набора TM1 компании Nokia и транзакций OrderStatus тестового набора TPC-C [20]. В прототипе DORA устраняется конкуренция в менеджере блокировок (рис. 2(a)). Кроме того, централизованное управление блокировками заменяется облегченным механизмом блокирования, локальным для потоков управления (рис. 2(b)).




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