Классика баз данных - статьи

       

Tandem Nonstop SQL


Система Tandem Nonstop SQL составлена из кластеров процессоров, соединенных квадраплексными волоконно-оптические кольцами. В отличие от большинства других систем, обсуждаемых в данной статье, в системах Tandem прикладные программы выполняются на тех же процессорах и в тех же операционных системах, что и серверы баз данных. Не различаются внешние и внутренние программы и машины. Системы сконфигурированы таким образом, что каждому процессору MIPS соответствует отдельный диск, так что каждый кластер из 10 MIPS содержит 10 дисков. Как правило, диски дуплексные [2]. Каждый диск обслуживается набором процессов, управляющих большой совместно используемой кэш-памятью прямого доступа, набором блокировок и журналом записей для данных на этой паре дисков. Затрачиваются значительные усилия на оптимизацию последовательного просмотра путем предварительного считывания больших объемов данных и фильтрации и обработки кортежей на этих дисковых серверах на основе предикатов SQL. Это позволяет минимизировать траффик в совместно используемой соединительной сети.

Можно разделить отношения между несколькими дисками в соответствии с диапазонами значений. Поддерживаются последовательная, относительная организации данных и организация на основе B-деревьев. Поддерживаются только вторичные индексы, основанные на B-деревьях. Используются алгоритмы соединения, основанные на вложенных циклах, сортировке-слиянии и хэшировании. Распараллеливание операторов в плане запроса достигается включением операций расщепления и слияния между узлами операторов в дереве запроса. Просмотры, агрегации, соединения, обновления и удаления выполняются параллельно. Кроме того, параллелизм используется и в некоторых утилитах (например, загрузка, реорганизация, ...) [31, 39].

Системы Tandem создавались, прежде всего, для обработки транзакций в режиме on-line (OLTP) – обработки большого количества небольших транзакций в больших совместно используемых базах данных. Помимо параллелизма, получаемого при параллельном выполнении большого числа независимых транзакций, основной возможностью OLTP является параллельное обновление индексов. Обычно на SQL-отношении определяется около пяти индексов, хотя и десять индексов для отношения отнюдь не редкость. Эти индексы позволяют ускорить чтение, но замедляют вставки, обновления и удаления. При параллельном работе с индексами время обработки нескольких индексов можно поддерживать практически постоянным (независимо от числа индексов), если индексы распределены между многими процессорами и дисками.

В целом системы Tandem демонстрируют почти линейную масштабируемость при обработке транзакций и почти линейное ускорение и масштабируемость при выполнении больших реляционных запросов [10, 31].



Содержание  Назад  Вперед