ДонНТУ
Цуканова Мария Владимировна
 

"Реализация базы данных Интернет-магазина на вычислительной кластерной сети"

Тезисы доклада на IV международную конференцию студентов, аспирантов и молодых ученых «Компьютерный мониторинг и информационные технологии».
Автор: Цуканова М.В.



При создании Интернет-магазинов возникает проблема производительности, которая состоит в том, что при большом количестве пользователей и большом объеме базы данных время отклика возрастает и появляется вероятность того, что система не справится с такими нагрузками. Для решения данной проблемы используется репликация и потабличное разбиение базы данных на вычислительной кластерной сети.

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

Кластер состоит из трех типов узлов:
- управляющий узел;
- узлы данных;
- узлы, которые организуют работу Интернет-магазина и работу с базой данных.

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

Узлы данных обеспечивают хранение данных и выполнение всех транзакций. Количество необходимых узлов данного типа зависит от объема данных и количества репликаций. Для хранения базы данных, которая разбивается на пять частей, необходимо иметь 10 узлов данных: 5 узлов для хранения исходных данных, которые используются при выполнении всех транзакций, и 5 узлов для хранения реплик этих узлов. Узлы данных разбиваются на группы. Число узлов в группе равно числу реплик, хранящих идентичную информацию. В данном случае каждая группа состоит из двух узлов. Один из узлов данных используется как координатор транзакций. При работе с базой данных каждая транзакция первоначально направляется на координатор транзакций, а далее координатор решает, на какие узлы далее должна последовать данная транзакция. Если какой-то в данный момент занят или выведен из строя, то координатор транзакций перенаправляет транзакцию на другой узел из данной группы узлов, который является копией.

Данные загружаются в оперативную память при старте кластера. Все дальнейшие операции также выполняются в оперативной памяти. Все проведенные транзакции пишутся на диск в виде лог-файла. При нормальном (не аварийном) завершении работы кластера все данные записываются на жесткий диск.

Для обеспечения целостности данных используется:
- постоянное ведение лога всех выполненных транзакций;
- контрольные точки.

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

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

Все остальные узлы кластера, кроме управляющего и узлов данных, предназначены для реализации запросов к базе данных и организации Интернет-магазина. Узлы для реализации запросов реализованы как обычные MySQL -сервера, которые используют в качестве хранилища данных узлы данных кластера.

Данные узлы могут использовать следующие обращения к узлам данных:
- Выборка по первичному ключу. Любая таблица, расположенная в узлах данных, имеет первичный ключ, даже если он не задан явно при создании таблицы. Выборка по первичному ключу - наименее ресурсоемкий из возможных запросов, от узла данных передается только одна запись.
- Выборка по уникальному ключу. Очень похоже на первый вариант и также использует первичный ключ для выборки данных.
- Полный просмотр таблицы. В случае, если сервер получает запрос на полный просмотр одной из таблиц, на каждом задействованном для хранения данной таблицы сервере запускается соответствующий процесс.
- Выборка по индексу. В таком случае также выполняется полный просмотр таблицы, но с узла данных передаются только те записи, которые имеют соответствующие значения индексного поля.

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

Кластер позволяет увеличить потенциал системы при обработке больших объемов данных или большого числа запросов за счет распределения нагрузки между несколькими серверами базы данных. Также принцип организации системы дает возможность вводить и выводить из работы один из серверов, проводить на нем профилактические работы или увеличивать число серверов без отключения приложения.
Литература
1. Официальный сайт MySQL www.mysql.com
2. Stewart Smith,Software Developer, MySQL AB,Cluster team, Melbourne/. An Introduction to MySQL Cluster

На главную Отчет о поиске Автореферат Ссылки Индивидуальное задание
2008 Цуканова М.В., ДонНТУ