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


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


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

Схемы доступа к данным у каждой транзакции и, следовательно, у каждого потока управления являются произвольными и некоординированными. Для обеспечения целостности данных каждый поток управления при выполнении соответствующей транзакции на короткое время входит в большое число критических участков. Однако для входа в критический участок и выхода из него требуется закрытие и открытие соответствующей "защелки" (latch), и накладные расходы на совершение этих действий возрастают при росте числа параллельных потоков управления.

Рис. 1. DORA в сравнении с традиционной системой при рабочей нагрузке, состоящей из транзакций GetSubscriberData тестового набора TM1: (a) пропускная способность в соответствии с коэффициентом использования процессора при возрастании этого коэффициента; (b) распределение времени традиционной системы; (c) распределение времени прототипа DORA.

Чтобы можно было оценить влияние на производительность накладных расходов на конкуренцию за вход в критические участки, на рис. 1(a) показана производительность традиционного менеджера хранения данных в соответствии с коэффициентом использования процессора при возрастании этого коэффициента. Рабочая нагрузка основана на клиентах, постоянно запускающих транзакции GetSubscriberData из эталонного тестового набора TM1 (подробности об используемой методологии см. в разд. 5). По мере возрастания коэффициента использования машины производительность системы в соответствии с этим коэффициентом падает. При использовании всех 64 аппаратных контекстов производительность в расчете на один контекст падает более чем на 80%.


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