MyWackoSite : Publikacii/2010/ISSC/ChilimKremennaya

РАЗРАБОТКА МЕХАНИЗМА РЕПЛИКАЦИИ СВЯЗАННЫХ ОБЪЕКТОВ

О. А. Кременная, Н. А. Тищенко, В. Д. Ипполитов, А. Ю. Бельский,
Н. А.Баженов, В. Н. Вельдяксов
Новосибирский государственный университет

Данная работа ведется в рамках проекта «Репликация реляционных СУБД». Проект решает задачу развертывания распределенной системы на централизованных приложениях в сетях с низкой отказоустойчивостью и низкой скоростью передачи данных. Актуальность данных каждого приложения достигается репликацией узлов распределенной системы методом «распространения слухов» [1, 2]. Одним из требований к бизнес-приложению является использование ORM-слоя для доступа к данным. Это позволяет отслеживать изменения в БД на объектном уровне.
При репликации возникает проблема сохранения целостности и корректности РСУБД [1]. Если по логике бизнес-приложения объект полностью независим, то его можно определить как минимальный объем передаваемых одновременно данных, который не нарушит целостность РСУБД удаленной реплики. Однако зачастую реализация бизнес-объекта не отражает связи и ограничения, существующие в СУБД, или наоборот, существующие логические зависимости бизнес-объектов не отражены в СУБД. Предлагается решение проблемы средствами репликатора.
Зависимость объектов в общем случае невозможно вычислить. Поэтому разработчик бизнес-приложения создает файл описания зависимостей между объектами (на основе XML [3]). Для каждого класса объектов в файле объявляется имя «загрузчика» – Java-класса, способного по объекту отыскать в БД его замыкание. Загрузчики должен создать разработчик бизнес-приложения.
Основной механизм репликации таков, что до синхронизации БД реплики согласуют список передаваемых объектов. Если обнаруживаются зависимости передаваемых первой репликой объектов друг от друга или от объектов БД, информация о них передается второй реплике. Для этого был расширен сетевой протокол общения реплик.
Вторая реплика выстраивает очередь пересылаемых объектов с учетом требований зависимых объектов. Затем, в соответствии с очередью, запрашивает данные у первой реплики. После этого репликатор сохраняет каждый полученный объект в соответствии с его требованиями.
__
1. А. Э. Таненбаум, М. ван Стеен. Распределенные Системы. Принципы и парадигмы. — СПб.: Питер, 2003.
2. Д. В. Иртегов. Введение в сетевые технологии. — СПб.: БХВ-Петербург, 2004.
3. XML Schema. // URL: www.w3.org/XML/Schema

Научные руководители – канд. физ.-мат. наук А. В. Чернышев,
Д. В. Иртегов, канд. физ.-мат. наук С. Ф. Кренделев