Публикации/2009/ISSC/RDBR

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

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

Под репликацией подразумевается полная или частичная синхронизация содержимого нескольких хранилищ данных. Большинство современных приложений на основе реляционных СУБД используют объектно-реляционное отображение (object-relational mapping, ORM) для хранения состояний объектов. При этом целостность данных сводится к поддержанию целостности состояния отдельных объектов. В этих условиях, для обеспечения целостности данных может оказаться достаточно осуществлять репликацию на уровне объектов. Цель проекта Relational DataBase Replication (RDBR) заключается в разработке и реализации механизма репликации реляционной СУБД для приложений с ORM слоем, приспособленного к плохим каналам связи.

Идея репликации объектно-реляционных данных посредством передачи объектов была реализована в продукте – dRS (db4o replication system), в котором для организации ORM используется библиотека Hibernate. Но данный продукт не применим в сетях с низкой скоростью передачи данных и низкой отказоустойчивостью.
Наше приложение включает в себя модифицированную версию Hibernate. Данная модификация отслеживает обращения к Hibernate на запись в базу и сохраняет необходимые для репликации метаданные в отдельной таблице той же СУБД. Метаданные включают в себя уникальный в рамках всей сети идентификатор объекта, время его фактического изменения (изменения его атрибутов) и время его сохранения в локальной реплике. Данной информации достаточно для реализации репликации путем «распространения слухов».

Нами разработан первый прототип репликатора, который, однако же, накладывает ряд ограничений на структуру СУБД. В частности недопустимо отображать разные объекты в одну строку таблицы. Cбор метаинформации ведется на каждом из узлов. Узел генерирует RSS-документы со списком объектов измененных с момента последней удачной репликации. В случае обрыва связи уже переданные объекты не передаются повторно, процессом репликации можно управлять из панели управления.

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