Назад в раздел
Архитектура - share nothing ("ничего не разделяется")
Архитектура - share nothing ("ничего не разделяется")
СУБД Teradata отвечает архитектуре программного обеспечения share nothing. СУБД имеет единый образ базы данных и использует несколько виртуальных процессов (Vprocs), которые для взаимодействия между собой используют высокоскоростной слой передачи сообщений (Message Passing Layer) с малым временем задержки. Этот слой реализован в составе расширений операционной системы для параллельных баз данных (Parallel Database Extensions - PDE). В дополнение к передаче сообщений, PDE поддерживает два типа виртуальных процессов: виртуальные процессоры PE (Virtual Parsing Engines - Virtual PE), отвечающие за взаимодействие, управление пользовательскими сессиями, оптимизацию запросов, создание и управление планом запроса; и виртуальные процессы AMP (Virtual Access Module Processes - Virtual AMP), используемые для фактического манипулирования таблицами баз данных. На рисунке представлена архитектура СУБД Терадата .
Виртуальные PE, виртуальные AMP и слой передачи сообщений
Расширение параллельных баз данных (PDE)
В СУБД Teradata расширение PDE обеспечивает виртуализацию программных процессов AMP и PE. PDE включает в себя слой передачи сообщений, отвечающий за межпроцессное взаимодействие виртуальных процессов, распределение строк и слияние наборов данных в единый для пользователя ответ. PDE планирует процессы в зависимости от загрузки системы и приоритетов, определенных пользователями. PDE управляет памятью и дисковыми операциями ввода/вывода, распределяет виртуальные процессы по узлам системы и ставит диски в соответствие виртуальным процессам. PDE также собирает всю статистику по использованию системы и поддерживает сбалансированную загрузку системы.
Виртуальные процессоры PE (Parsing Engines)
Взаимодействие с виртуальными процессорами PE может выполняться по локальной сети (LAN), глобальной сети (WAN) и каналам связи с мэйнфреймами (стандартными или ESCON). Диспетчер сессий управляет пользовательскими сессиями, например, устанавливает и завершает их. Дополнительные компоненты виртуальных процессоров PE включают : синтаксический разборщик SQL запросов (Parser), оптимизатор запросов (Optimizer) и диспетчер (Dispatcher). Разборщик выполняет грамматический анализ SQL запроса и разбивает его на несколько элементарных шагов для последующего выполнения. Оптимизатор создает наилучший из всех возможных планов выполнения запроса, а диспетчер контролирует поток выполнения шагов уже с оптимизированного запроса.
Компоненты PE
Управление выполнением запросов начинается при посылке первого шага запроса виртуальному процессору AMP и продолжается до тех пор пока не будет получен и скоординирован последний набор ответных данных. Ответные наборы данных от всех виртуальных процессов-участников обработки AMP через слой передачи сообщений (Message Passing Layer) направляются диспетчером напрямую пользователю (за одну итерацию передается один буфер). Teradata автоматически распределяет пользовательские соединения по нескольким виртуальным процессорам PE, тем самым обеспечивая равномерную загрузку коммуникационных устройств и виртуальных процессоров РЕ, отвечающих за грамматический разбор и анализ SQL запросов. Равномерная загрузка системы и сбалансированная передача потока ответных данных от параллельных виртуальных процессоров AMP непосредственно пользовательскому приложению исключает наличие "узких" мест в одном из узлов системы. Эта архитектура принципиально отличается от других архитектур, в которых окончательные наборы ответных данных формируются (а иногда и сортируются) на одном и том же узле системы. Выполнение запроса в СУБД Teradata показан на следующем рисунке.
Выполнение SQL-запроса
Виртуальные процессоры AMP (Virtual Access Module Processes)
Виртуальные процессоры AMP управляют обработкой данных. Каждый AMP получает одинаковую часть данных, при этом он автоматически обеспечивает доступ к данным, преобразование данных, управление параллельной работой пользователей, журналирование, управление кэшом и функции восстановления данных. Каждый AMP также выполняет сканирование, принадлежащих ему данных, сканирование индексов, чтение индексов, агрегирование, сортировку данных и соединения таблиц.
У каждого виртуального процессора AMP имеется своя собственная файловая система со своими структурами данных, механизмами управления дисковым пространством, кэшом и функциями контроля одновременной работы нескольких пользователей. Интерфейс файловой системы допускает одновременный доступ и манипулирование строками, управление одиночными блоками данных, манипулирование таблицами. Для оптимизации производительности доступа к дисковому пространству разработаны интерфейсные подпрограммы.
Компоненты AMP
|