|
| |||||||||||||||||||||||
| |||||||||||||||||||||||
Серверные продукты компании InformixН.Вьюкова СУБД INFORMIX, первая версия которой вышла в 1980 г., традиционно использовалась для создания информационных систем малого или среднего масштаба, работающих в режиме оперативной обработки транзакций. Однако, начиная с версии 6.0, сервер Informix, получивший название Informix-Online Dynamic Server (Informix ODS), прибрел такие черты, которые позволили с успехом применять эту СУБД для реализации крупных проектов. Многопотоковая архитектура сервера послужила базой для реализации технологии параллельной обработки запросов, которая включена в версию 7. Эта технология обеспечивает эффективное выполнение сложных запросов, характерных для систем поддержки принятия решений (Decision Support Systems - DSS). Архитектурные и технологические решения, положенные в основу Informix-ODS, нашли дальнейшее развитие в последнем серверном продукте компании - Informix-Online EXtended Parallel Server (Informix-ОXPS), который предназначен для кластерных и массово-параллельных платформ и предоставляет повышенный уровень производительности и отказоустойчивости. В докладе дается обзор архитектурных принципов и механизмов, которые определили новое качество последних моделей серверов Informix. Основные направления развития этих продуктов связаны с важнейшими требованиями, предъявляемыми к СУБД, которая претендует на роль информационной основы современного предприятия [1]:
1. Сервер Informix-Online Dynamic Server
Архитектура сервера Informix-ODS получила название "динамическая масштабируемая
архитектура" (DSA). Суть ее заключается в том, что одновременно выполняется относительно
небольшое число серверных процессов (виртуальных процессоров, ВП), которые разделяют между
собой работу по обслуживанию множества клиентов. По сравнению с более ранними моделями
сервера INFORMIX, где для каждого клиента создавался индивидуальный серверный процесс,
новая модель обладает рядом преимуществ:
ВП - это процесс сервера баз данных, управляющий выполнением потоков. ВП можно сравнить с операционной системой - поток по отношению к нему выступает как процесс, подобно тому как сам ВП является процессом с точки зрения операционной системы. ВП выбирают готовые к выполнению потоки из общей очереди, поэтому ни один из них не простаивает, если есть какая-либо работа по обработке запросов или управлению. Таким образом, обеспечивается сбалансированная загрузка доступных процессоров. Существенная экономия процессорного времени достигается за счет того, что переключение ВП с потока на поток выполняется значительно быстрее, чем переключение ОС с процесса на процесс.
Разделяемая память - это механизм операционной системы, на котором основано разделение
данных между виртуальными процессорами и потоками сервера. Разделение данных
позволяет:
В разделяемой памяти находится информация обо всех выполняемых потоках, поэтому потоки относительно быстро переключаются между ВП. Совокупное использование памяти оптимизируется за счет поддержки кэшей хранимых процедур и словарей данных, разделяемых между всеми ВП. При загрузке в разделяемую память словарь данных записывается в структуры, обеспечивающие быстрый доступ к информации, а хранимые процедуры преобразуются в выполняемый формат, что существенно ускоряет выполнение приложений, обращающихся ко многим таблицам с большим числом столбцов и/или ко многим хранимым процедурам.
Операции ввода-вывода, как правило, образуют наиболее медленную компоненту обработки баз
данных. Поэтому от их реализации существенно зависит общая продуктивность
2. Сервер Informix-Online EXtended Parallel Server
Системы с массовым параллелизмом (MPP) и слабосвязанные (кластерные) системы, для которых
предназначена модель сервера Informix-OXPS, обладают двумя важнейшими преимуществами -
высоким потенциалом отказоустойчивости и широкими возможностями наращивания
производительности.
Подобно аппаратным платформам, для которых он предназначен, Informix OXPS построен на
принципах относительной независимости узлов и неразделения ресурсов. Независимость узлов
выражается в том, что каждый из них выполняет свой экземпляр программного обеспечения
СУБД, которое включает сервисы протоколирования, восстановления, управления блокировками
и управления буферами. Узел, на котором выполняются эти сервисы, называется ко-сервером.
Каждый узел, имея собственные сервисы протоколирования, восстановления, буферизации, управления контрольными точками и управления блокировками, полностью распоряжается данными, которыми он владеет. Если другим узлам требуются его данные, то они присылают соответствующие запросы на их получение. В целях оптимизации на всех узлах может быть кэширован системный каталог, содержащий информацию о распределении данных по узлам. Из тех же соображений небольшие часто используемые таблицы также, вероятно, будут тиражированы на все узлы. Архитектура Informix-OXPS, основанная на принципах децентрализованного, фрагментированного управления и раздельного владения данными, лишена ряда недостатков, присущих противоположному подходу, когда базы данных разделяются всеми узлами. В таком случае необходим выделенный центральный узел, который координирует совместный доступ "рабочих" узлов к содержимому баз данных.
Каждый узел, владея некоторым фрагментом данных, при помощи менеджера метаданных может
получить информацию о местонахождении остальных данных. Если узлу нужны внешние данные,
то он посылает ко-серверу, который ими владеет, запрос на обработку. Ко-сервер, получивший
запрос, выбирает требуемые данные, выполняет заказанный вид обработки и возвращает
результат заказчику. Процесс отсылки запросов другим узлам называется передачей функций. 3. Технологии параллельной обработки
Масштабируемость СУБД характеризуется двумя факторами, которые можно назвать линейным
наращиванием и линейным ускорением. Линейное наращивание означает, что при двукратном
увеличении аппаратных ресурсов СУБД будет за то же время производить вдвое больший объем
обработки данных. Линейное ускорение означает, что при двукратном увеличении аппаратных
ресурсов СУБД станет выполнять приложения вдвое быстрее. В идеале хотелось бы рассчитывать
на линейную наращиваемость и ускоряемость при неограниченном росте числа ресурсов.
Серверы Informix поддерживают горизонтальную фрагментацию таблиц. Это такой способ
хранения таблицы, когда совокупность ее строк разбивается на несколько групп согласно
некоторому правилу, и эти группы хранятся на разных дисковых разделах. В Informix-OXPS
фрагменты таблицы могут распределяться между дисками разных узлов.
Термином "фрагментация выполнения" обозначается разбиение запроса на несколько подзапросов
и их параллельное выполнение (т. е. вертикальный параллелизм); подзапросы затем могут быть
разбиты на подзадачи, выполняемые параллельно (горизонтальный параллелизм, рис. 1).
Рис.1. Сокращение времени обработки за счет применения вертикального и горизонтального параллелизма.
Методы фрагментации выполнения применяется в обеих моделях серверов, с той разницей, что
Informix-ODS для выполнения подзапросов и подзадач создает потоки, выполняемые параллельно
на нескольких процессорах, а в Informix-OXPS выполнение подзапросов и подзадач распределяется
между ко-серверами. Фрагментация выполнения дает многократный выигрыш в
производительности на следующих типах задач:
3.3.1. Вертикальный параллелизм. Итераторы
Элементарные операции, из которых состоит реализация любого запроса, называются
итераторами. Итератор - это программный объект, который воспринимает потоки строк от одного
или двух источников, выполняет над ними некоторый вид обработки и выдает результирующий
поток строк. Источниками данных могут служить дисковые файлы, сетевые соединения,
результирующие потоки других итераторов. Основное свойство итераторов - единообразие их
внешнего интерфейса, благодаря которому они могут произвольным образом объединяться. Дерево его реализации (рис. 2) включает следующие типы итераторов: Дерево итераторов на рис. 2 реализует одновременное выполнение на разных процессорах или ко- серверах множества циклов обработки данных за счет конвейеризации промежуточных результатов. Так, результаты сканирования таблиц могут передаваться другому ко-серверу (в OXPS) или другому потоку (в ODS), который сможет начать соединение по мере поступления строк исходных таблиц. Результат соединения передается еще одному ко-серверу или потоку, который начнет выполнять суммирование, и т. д. 3.3.2. Горизонтальный параллелизм. Рефрагментация промежуточных
результатов
Для того чтобы ускорить выполнение запроса, для каждой элементарной операции создается
несколько итераторов, которые распределяются между ко-серверами (OXPS) или выполняются как
отдельные потоки (ODS). Координацией совместной деятельности множества однотипных
итераторов занимается итератор типа EXCHANGE. EXCAHGE рефрагментирует результаты,
полученные от нижележащих итераторов и передает их итераторам верхнего уровня (рис. 3). 3.3.3. Баланс между приложениями OLTP и DSS
Задачи, выполняемые на сервере СУБД, можно разделить на три категории: OLTP, DSS и пакетной
обработки.
Рис 2. Дерево реализации запроса состоит из итераторов. Каждый итератор производит заданный вид обработки по мере поступления входных данных, не дожидаясь завершения итераторов нижнего уровня.
Примеры заданий пакетной обработки - массовая загрузка данных, выдача сложных отчетов,
действия по реорганизации базы данных. 4. Сервер Informix - среда высокой доступности данных
Серверные продукты Informix содержат целый спектр средств для поддержания доступности
данных. Сочетание этих средств позволяет обеспечить разные уровни надежности и
отказоустойчивости в зависимости от потребностей приложений и от наличных аппаратных
ресурсов.
Рис.3. Один из вариантов применения горизонтального параллелизма для дерева итераторов рис.2
Каждый ко-сервер владеет некоторым набором дисков, на которых располагаются фрагменты
базы данных. Диски, как правило, являются двухпортовыми, и каждый из них физически соединен
еще с некоторым ко-сервером Informix-OXPS. Если в результате аппаратного или программного
сбоя узел выходит из строя, его диски автоматически передаются во владение альтернативным ко-
серверам, и доступность данных сохраняется. Диски, журнал транзакций, рабочую загрузку
отказавшего узла берут на себя остальные ко-серверы.
Обе модели серверов Informix располагают встроенными средствами зеркалирования дисковых
областей, что позволяет преодолевать последствия дисковых сбоев и обеспечивать непрерывную
доступность данных. Поддерживаются также аппаратные средства зеркалирования, если они
имеются. Преимущество собственных программных средств Informix в том, что они позволяют
избирательно задавать зеркалирование множества фрагментов, наиболее критичных для
работоспособности прикладной среды.
Механизм тиражирования Informix-ODS позволяет поддерживать копию первичного сервера на
вторичном сервере, который в обычном режиме доступен только на чтение и может, например,
использоваться для выполнения приложений DSS. При отказе первичного сервера вторичный
переключается в режим чтения-записи, и все клиенты переключаются на него.
Во многих ситуациях при выходе из строя отдельных узлов или дисков вполне допустимой может
быть неполная обработка данных, что предпочтительнее, чем полный отказ в обслуживании.
Опция игнорирования позволяет обходить при обработке запросов фрагменты базы данных, если
они в данный момент недоступны.
Существенный фактор обеспечения непрерывной доступности данных - возможность выполнять
основные административные действия без останова сервера. Серверы Informix позволяют в
оперативном многопользовательском режиме выполнять такие процедуры, как изменение
параметров конфигурирования, рефрагментация таблиц, добавление и уничтожение столбцов,
создание и уничтожение индексов, сохранение и восстановление данных, замена диска, изменение
конфигурации узла OXPS. 5. Интегральные средства управления
Программное обеспечение Informix-OXPS тесно интегрировано с развитой средой системного
управления Tivoli Management Environment (TME), разработанной компанией Tivoli Systems Inc.
(Начиная с версии 8 аналогичные средства системного управления будут реализованы и для
Informix ODS.) Среда управления скрывает от администраторов внутреннюю сложность
аппаратных конфигураций кластерных архитектур и систем MPP, предоставляя единую точку
обзора объектов баз данных, независимо от их физического местоположения.
6. Заключение
В статье представлен обзор архитектурных решений и основных возможностей двух моделей
серверов СУБД Informix. Сервер Informix-ODS - рыночный продукт, широко применяемый для
реализации проектов самого разного характера. Сервер Informix-OXPS доступен пока для
ограниченного спектра платформ и не получил еще широкого распространения. Первоначальные
версии этого продукта ориентированы, прежде всего, на создание крупных хранилищ данных со
средствами обработки образов документов и мультимедийными возможностями. Литература
| |||||||||||||||||||||||
|
CITForum © 1997–2025