Использование МВС-100 в качестве параллельной машины баз данных

Л.Б. Соколинский, М.Л. Цымблер
sokolinsky@acm.org, mzym@csu.ac.ru

(Челябинск, Челябинский государственный университет)

Отечественная мультипроцессорная система МВС-100 применяется для решения широкого спектра вычислительных задач. Однако МВС-100 может использоваться и как машина баз данных. В [1] была описана архитектура и общие принципы разработки параллельной СУБД Омега для МВС-100. В данной работе рассматривается архитектура системы управления файлами (СУФ) СУБД Омега.

СУФ является распределенной системой, функционирующей внутри каждого W -кластера. В основу СУФ была положена архитектура клиент-сервер. В качестве клиентов фигурируют узлы W -кластера, в качестве сервера - дисковая подсистема.

Сервер представляет собой виртуальное устройство, состоящее из N логических дисков, разбитых на страницы фиксированного размера. Сервер обслуживает запросы клиентов на чтение и запись страниц.

Клиент представляет собой иерархию трех подсистем: менеджера файлов, менеджера страниц и менеджера дисков.

Менеджер дисков реализует интерфейс ввода-вывода для организации постраничных обменов с сервером. Для взаимодействия серверной и клиентской частей СУФ разработан специальный коммуникационный протокол. В соответствие с данным протоколом каждое сообщение разбивается на два пакета: пакет-заголовок и пакета с данными. Пакет-заголовок включает в себя идентификатор операции, тип операции, результат выполнения операции и идентификатор страницы. Пакет с данными имеет фиксированную длину и не имеет внутренней структуры. Пакету с данными обязательно должен предшествовать пакет-заголовок. За пакетом-заголовком не обязательно следует пакет с данными. Данный протокол позволяет избежать динамического выделения памяти и копирования данных "память-память". Менеджер дисков запускается при инициализации системы на всех узлах-клиентах в виде легковесного процесса. Поддержка легковесных процессов обеспечивается менеджером легковесных процессов [2], специально разработанным для СУБД Омега.

Менеджер страниц обеспечивает представление базы данных, в виде совокупности наборов страниц, представляющих собой связные списки. Менеджер страниц позволяет создавать и удалять наборы страниц, добавлять страницы в набор, удалять страницы из набора, осуществлять последовательный просмотр набора страниц, а также прямую выборку страницы с указанным идентификатором. Кроме этого, предусматривается возможность выборки страницы с упреждением. Менеджер страниц в качестве подсистем включает в себя менеджер буферного пула и менеджер списка свободного пространства. Конкретное представление менеджера страниц состоит из следующих основных структур данных: буферного пула (в виде единого массива), таблицы Index и таблицы Dir. Таблица Index имеет длину K, где K - размер буферного пула в страницах, и содержит индекс по идентификаторам страниц, находящихся в буферном пуле. Таблица Dir представляет собой избыточный индекс второго уровня. Длина таблицы Dir равна mK, где m - целое число большее единицы. Подобная двухуровневая организация позволяет эффективно реализовать операции простой выборки и выборки с упреждением. Вытеснение страниц осуществляется в результате подсчета динамических рейтингов. Менеджер страниц запускается при инициализации системы на всех узлах-клиентах в виде легковесного процесса.

Менеджер файлов обеспечивает представление базы данных в виде файлов, представляющих собой наборы неструктурированных записей одинаковой длины (запись имеет только одно информационное поле info). Менеджер файлов позволяет создавать и удалять файлы, добавлять в файл новые записи, удалять записи из файла, изменять содержимое записи (значение поля info), осуществлять прямой доступ к записи по ее идентификатору, а также создавать итераторы, выдающие без повторений указатели на все записи файла.

Для МВС-100 написана реализация СУФ на языке Си. Описанная система может быть использована в различных задачах, требующих интенсивных файловых обменов.

Работа выполнена при поддержке Российского фонда фундаментальных исследований, грант N 97-07-90148.

Литература

  1. Sokolinsky L., Axenov O., Gutova S. Omega: The Highly Parallel Database System Project // Proc. First East-European Symposium on Advances in Database and Information Systems (ADBIS'97), St.-Petersburg. September 2-5, 1997. Vol. 2. P. 88-90.
  2. Соколинский Л.Б. Эффективная организация легковесных процессов в параллельной СУБД Омега для МВС-100 // Фундаментальные и прикладные аспекты разработки больших распределенных программных комплексов: Тез. докл. Всероссийск. науч. конф. (21-26 сентября 1998 г., г. Новороссийск). -М.: Изд-во МГУ. 1998. C. 132-138.