Вопрос построения распределенных информационных систем на основе репликации баз данных
Рассмотрено состояние механизмов репликации в основных промышленных СУБД. Показаны недостатки в существующих реализациях асинхронной репликации с возможностью модификации реплик во всех узлах системы. Предложены направления усовершенствования данного механизма, уменьшения накладных расходов и повыше...
Збережено в:
Дата: | 2004 |
---|---|
Автор: | |
Формат: | Стаття |
Мова: | Russian |
Опубліковано: |
Інститут проблем реєстрації інформації НАН України
2004
|
Назва видання: | Реєстрація, зберігання і обробка даних |
Теми: | |
Онлайн доступ: | http://dspace.nbuv.gov.ua/handle/123456789/50706 |
Теги: |
Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
|
Назва журналу: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
Цитувати: | Вопрос построения распределенных информационных систем на основе репликации баз данных / А.Н. Кот // Реєстрація, зберігання і оброб. даних. — 2004. — Т. 6, № 1. — С. 76-81. — Бібліогр.: 9 назв. — pос. |
Репозитарії
Digital Library of Periodicals of National Academy of Sciences of Ukraineid |
irk-123456789-50706 |
---|---|
record_format |
dspace |
spelling |
irk-123456789-507062013-10-29T03:06:07Z Вопрос построения распределенных информационных систем на основе репликации баз данных Кот, А.Н. Інформаційно-аналітичні системи обробки даних Рассмотрено состояние механизмов репликации в основных промышленных СУБД. Показаны недостатки в существующих реализациях асинхронной репликации с возможностью модификации реплик во всех узлах системы. Предложены направления усовершенствования данного механизма, уменьшения накладных расходов и повышения производительности. Розглянуто стан механізмів реплікації в основних промислових СУБД. Показано недоліки в існуючих реалізаціях асинхронної реплікації з можливістю модифікації реплік у всіх вузлах системи. Запропоновано напрямки удосконалення даного механізму, зменшення накладних витрат і підвищення продуктивності. The state of replication mechanisms in main industrial DBMS is considered. The disadvantages of existing asynchronous update everywhere replication implementations are shown. Several improvements of asynchronous update everywhere replication are proposed. 2004 Article Вопрос построения распределенных информационных систем на основе репликации баз данных / А.Н. Кот // Реєстрація, зберігання і оброб. даних. — 2004. — Т. 6, № 1. — С. 76-81. — Бібліогр.: 9 назв. — pос. 1560-9189 http://dspace.nbuv.gov.ua/handle/123456789/50706 004.658 ru Реєстрація, зберігання і обробка даних Інститут проблем реєстрації інформації НАН України |
institution |
Digital Library of Periodicals of National Academy of Sciences of Ukraine |
collection |
DSpace DC |
language |
Russian |
topic |
Інформаційно-аналітичні системи обробки даних Інформаційно-аналітичні системи обробки даних |
spellingShingle |
Інформаційно-аналітичні системи обробки даних Інформаційно-аналітичні системи обробки даних Кот, А.Н. Вопрос построения распределенных информационных систем на основе репликации баз данных Реєстрація, зберігання і обробка даних |
description |
Рассмотрено состояние механизмов репликации в основных промышленных СУБД. Показаны недостатки в существующих реализациях асинхронной репликации с возможностью модификации реплик во всех узлах системы. Предложены направления усовершенствования данного механизма, уменьшения накладных расходов и повышения производительности. |
format |
Article |
author |
Кот, А.Н. |
author_facet |
Кот, А.Н. |
author_sort |
Кот, А.Н. |
title |
Вопрос построения распределенных информационных систем на основе репликации баз данных |
title_short |
Вопрос построения распределенных информационных систем на основе репликации баз данных |
title_full |
Вопрос построения распределенных информационных систем на основе репликации баз данных |
title_fullStr |
Вопрос построения распределенных информационных систем на основе репликации баз данных |
title_full_unstemmed |
Вопрос построения распределенных информационных систем на основе репликации баз данных |
title_sort |
вопрос построения распределенных информационных систем на основе репликации баз данных |
publisher |
Інститут проблем реєстрації інформації НАН України |
publishDate |
2004 |
topic_facet |
Інформаційно-аналітичні системи обробки даних |
url |
http://dspace.nbuv.gov.ua/handle/123456789/50706 |
citation_txt |
Вопрос построения распределенных информационных систем на основе репликации баз данных / А.Н. Кот // Реєстрація, зберігання і оброб. даних. — 2004. — Т. 6, № 1. — С. 76-81. — Бібліогр.: 9 назв. — pос. |
series |
Реєстрація, зберігання і обробка даних |
work_keys_str_mv |
AT kotan voprospostroeniâraspredelennyhinformacionnyhsistemnaosnovereplikaciibazdannyh |
first_indexed |
2025-07-04T12:30:00Z |
last_indexed |
2025-07-04T12:30:00Z |
_version_ |
1836719486952013824 |
fulltext |
76
УДК 004.658
А. Н. Кот
Институт проблем регистрации информации НАН Украины
ул. Н. Шпака, 2, 03113 Киев, Украина
Вопрос построения распределенных информационных
систем на основе репликации баз данных
Рассмотрено состояние механизмов репликации в основных промыш-
ленных СУБД. Показаны недостатки в существующих реализациях
асинхронной репликации с возможностью модификации реплик во всех
узлах системы. Предложены направления усовершенствования данно-
го механизма, уменьшения накладных расходов и повышения произво-
дительности.
Ключевые слова: распределенная СУБД, синхронная репликация, асин-
хронная репликация, транзакции, конфликт модификации данных.
Введение
Для автоматизации корпоративных организаций актуально построение рас-
пределенных информационных систем. Как правило, данные системы строятся на
основе СУБД. С этой целью могут использоваться централизованные СУБД, дос-
туп к которым осуществляется по надежным высокоскоростным каналам переда-
чи данных. Однако гораздо чаще такие системы строятся на основе распределен-
ных СУБД (РСУБД). Это является следствием плохих каналов передачи данных,
необходимостью приближения данных к месту их преимущественного использо-
вания и т.п. Одним из основных механизмов, обеспечивающих функционирова-
ние РСУБД, является репликация.
Репликация — это процесс создания и синхронизации нескольких копий ин-
формационных объектов, в частном случае реляционных отношений — таблиц,
хранимых одновременно на нескольких узлах распределенной системы [1]. Реп-
лицироваться может как вся таблица, так и некоторый ее фрагмент (горизонталь-
ный либо вертикальный). Реплики некоторой таблицы могут быть организованы
как на всех узлах распределенной системы, так и на некотором их подмножестве.
Репликатор — это программный продукт, осуществляющий репликацию. Репли-
катор может быть как составной частью СУБД, так и независимым продуктом.
Одна из основных задач, которая должна быть решена при организации реп-
ликации — это эффективная конкурентная работа с реплицируемыми данными в
разных узлах системы, т.е. необходимость обеспечения возможности модифи-
кации реплик во всех узлах системы и при этом достижения максимально возмож-
© А. Н. Кот
Вопрос построения распределенных информационных систем на основе репликации баз данных
ISSN 1560-9189 Реєстрація, зберігання і обробка даних, 2004, Т. 6, № 4 77
ной степени масштабируемости системы, а, именно, возможности функциониро-
вания системы на максимально возможном количестве узлов. Для этого надо ре-
шить вопрос организации распределенных блокировок и/или разрешения кон-
фликтов модификации, a также улучшить производительность механизмов репли-
кации, так как с увеличением размера систем растет и объем данных, обрабаты-
ваемый в них.
Обзор механизмов репликации, используемых
в современных программных продуктах
Все основные промышленные реляционные СУБД (Oracle, MSSQL, DB2, In-
formix) обеспечивают репликацию средствами, встроенными в СУБД, или при
помощи вспомогательного продукта, разрабатываемого производителем СУБД.
Имеются также независимые программные продукты PeerDirect, GoldenGate, HVR
и др., предназначенные, в основном, для обеспечения гетерогенной репликации,
т.е. репликации между разными СУБД, а также для репликации больших объемов
данных (HVR). Существование таких независимых продуктов свидетельствует о
наличии недостатков в средствах репликации, реализованных в СУБД.
Одним из основных способов классификации механизмов репликации явля-
ется классификация по способу распространения изменений. По этому критерию
выделяется два основных класса механизмов репликации:
— с синхронным распространением обновлений, предназначенные для по-
строения сильно связанных систем на основе надежных высокоскоростных кана-
лов связи. Такие механизмы предназначены, в основном, для построения сверх-
больших БД;
— с асинхронным распространением обновлений, предназначенные для по-
строения распределенных систем с большим количеством мобильных, периодиче-
ски подключаемых узлов. Такие механизмы предназначены для построения персо-
нальных систем, взаимодействующих с централизованной корпоративной системой.
При использовании синхронных механизмов репликации изменения, вноси-
мые в реплику на одном узле, сразу распространяются на все другие узлы систе-
мы. Сразу после фиксации транзакции во всех узлах системы становится доступ-
ным актуальное состояние измененных данных. При использовании асинхронных
механизмов, после изменения данных в некотором узле, транзакция в нем фикси-
руется, и данные становятся доступными другим пользователям. После этого сис-
тема в целом на некоторое время утрачивает свойство целостности, т.е. одни и те
же строки таблиц в разных узлах системы имеют разное состояние, и более того,
могут быть одновременно модифицированы в разных узлах, что приведет к воз-
никновению конфликтной ситуации. Системы с синхронным механизмом репли-
кации для предотвращения конфликтных ситуаций используют механизм распре-
деленных блокировок, при этом возникают проблемы связанные с ожиданием
блокировок, взаимных блокировок и т.д., что приводит к существенному ограни-
чению степени масштабируемости систем, использующих синхронные механиз-
мы репликации. Системы с асинхронным механизмом допускают возникновение
конфликтов, которые должны быть определены и разрешены при последующем
распространении обновлений. Блокировки и конфликтные ситуации являются
А. Н. Кот
78
платой за избыточность данных при конкурентном доступе. По сути, это два спо-
соба обработки конфликтных ситуаций: пессимистический (блокировки) — не
дать конфликту произойти, и оптимистический (разбор конфликтов) — предпо-
ложить, что конфликта не будет, а если он произойдет, то тогда разрешить его на
более поздней стадии [2].
Каждая из основных промышленных СУБД обеспечивает несколько вариантов
репликации. Обычно это нижеперечисленные варианты, а также их комбинации:
1) репликация неизменяемых мгновенных снимков данных от узла владельца
во все остальные узлы;
2) репликация мгновенных снимков с возможностью их предварительной мо-
дификации во всех узлах с накоплением лога изменений, который передается узлу
владельцу для внесения в главную реплику;
3) равноправное владение репликами всеми узлами системы с возможностью
модификации реплик во всех узлах.
Первые два варианта являются асинхронными по своей сути и реализуются
на основе асинхронных обеспечивающих механизмов: установление связи по рас-
писанию, передачи пакетов изменений через системы обмена сообщениями
(MOM).
Третий вариант в разных СУБД реализуется синхронным и/или асинхронным
способом. Несмотря на большое количество работ, посвященных усовершенство-
ванию синхронных механизмов репликации [3–6], их результаты пока практиче-
ски не внедрены в промышленные СУБД. Для обновления реплик в промышлен-
ных СУБД до сих пор используются распределенные транзакции, с двухфазной
фиксацией, включающие все узлы системы. Проблемы подобного подхода под-
робно описаны в [7].
Все промышленные СУБД тем или иным образом обеспечивают асинхронные
механизмы репликации с возможностью модификации реплик во всех узлах сис-
темы. Однако во всех случаях для их реализации используются подходы, приво-
дящие к высокой избыточности данных. В прикладных базах данных (БД) вводят-
ся буферные таблицы или другие структуры хранения для накопления всех изме-
нений данных, которые необходимо реплицировать. Для накопления эти измене-
ния нужно некоторым образом захватывать. Продукты производителей СУБД,
обеспечивающие репликацию для захвата изменений, обычно используют анализ
лога транзакций СУБД. Продукты сторонних разработчиков, в основном, исполь-
зуют для этих целей триггера, внедряемые БД. Последние захватывают каждую
изменяемую строку и записывают ее в структуру, где накапливаются изменения.
Наличие триггеров для захвата изменений может оказывать существенное нега-
тивное влияние на производительность прикладной системы, особенно при про-
ведении массовой модификации данных. Кроме того, для обеспечения функцио-
нирования в данном режиме в таблицы прикладной системы внедряются допол-
нительные поля, такие как: уникальный идентификатор записи, метка времени
изменения, идентификатор узла и т.п. Для актуализации данных полей, в свою
очередь, используются дополнительные триггера. Накопленные таким образом
изменения в дальнейшем передаются в остальные узлы системы, где применяются
для внесения изменений в соответствующие реплики, а также для определения и
разрешения конфликтов. Необходимо отметить, что количество накопленных дан-
Вопрос построения распределенных информационных систем на основе репликации баз данных
ISSN 1560-9189 Реєстрація, зберігання і обробка даних, 2004, Т. 6, № 4 79
ных в описанных вспомогательных структурах прямо пропорционально количест-
ву изменений, произведенных в узле системы. В случае массовой модификации
данных, возможна генерация значительного объема вспомогательных данных, со-
поставимых по объему с полезными данными.
Таким образом, описанный подход к реализации асинхронных механизмов
репликации применим для реализации систем с относительно небольшим количе-
ством модификаций данных и относительно частых сеансов связи между узлами.
Однако он практически не применим для систем, в которых узлы могут работать
автономно длительный период времени и обрабатывать большие объемы данных.
Как уже упоминалось, при использовании асинхронных механизмов реплика-
ции с возможностью модификации реплик во всех узлах неизбежно наличие кон-
фликтов модификации данных. Все рассматриваемые СУБД обеспечивают экви-
валентные методы разрешения конфликтов:
— стандартные, встроенные методы — актуальным признается изменение
строки по приоритету времени изменения, приоритету узла и т.п.
— специальная пользовательская хранимая процедура для разбора конфлик-
тов, оформленная по специальным правилам.
Во втором случае разрешение конфликта переносится на уровень прикладной
системы, что существенно усложняет ее разработку.
Практически во всех продуктах, поддерживающих асинхронную репликацию,
определение и разрешение конфликтов осуществляется на уровне отдельных
строк таблицы. В то же время большинство приложений оперирует информаци-
онными объектами, которые сохраняются в виде множества взаимосвязанных
строк в разных таблицах. Модификация реплик данных объектов в разных узлах
приводит к возникновению межтабличных конфликтов [8]. В лучшем случае, в
документации разработчика СУБД приводятся краткие рекомендации по проекти-
рованию БД для распределенных прикладных систем, направленные на снижение
вероятности конфликтов. В то же время существуют еще более сложные виды
конфликтов, например, конфликты, определяемые на основе бизнес-правил сис-
темы. Для задания многих из этих правил не хватает декларативных возможно-
стей БД (ограничений ссылочной целостности и т.п.), и конфликт вообще не об-
наруживается на уровне базы данных. Разрешение всех нетривиальных конфлик-
тов полностью переносится на разработчиков прикладных систем.
Необходимо также отметить, что при использовании синхронных механизмов
репликации во всех промышленных СУБД, аналогично асинхронным методам,
используется блокировка данных на уровне отдельных строк таблиц. Здесь возни-
кают абсолютно аналогичные проблемы, например взаимоблокировка при попыт-
ке модификации в разных узлах различных частей одного информационного объ-
екта.
Методы повышения эффективности механизмов асинхронной
репликации с возможностью модификации реплик
во всех узлах системы
В предыдущем разделе описаны две проблемы, возникающие при реализации
асинхронной репликации в современных СУБД. Первая — это высокие накладные
А. Н. Кот
80
расходы, необходимые для обеспечения функционирования данных механизмов,
связанные с дублированием данных (дополнительное дисковое пространство) и
использованием триггеров, выполняющих модификацию дополнительных слу-
жебных данных (дополнительные вычислительные ресурсы). Вторая — это слож-
ности, возникающие в результате разбора конфликтов на уровне отдельных строк
в таблицах БД. Для ряда прикладных систем возможно усовершенствование ме-
ханизмов асинхронной репликации, повышения их производительности и степени
масштабируемости систем, построенных на их основе.
Одним из способов решения первой из названных проблем может быть отказ
от использования буферных таблиц для накопления изменений. В этом случае для
отслеживания измененных строк в реплицируемых таблицах можно использовать
фиксированный объем вспомогательных данных для каждой строки, внедряемых
в виде дополнительных полей в эту строку. Поддержание таких данных в акту-
альном состоянии триггерами не требует дополнительных вычислительных ре-
сурсов, так как не будет необходимости в генерации новых данных при модифи-
кации данных реплицируемой таблицы.
Одним из возможных путей усовершенствования механизмов обработки
конфликтных ситуаций может быть рассмотрение в качестве атомарных объектов,
с которыми работают механизмы репликации, не отдельных строк в таблицах БД,
а информационных объектов состоящих из множества взаимосвязанных строк.
Подобный подход может позволить минимизировать ресурсы, необходимые для
обеспечения блокировок, отсечь некоторые виды конфликтов, реализовать более
высокоуровневые схемы блокировок, например, механизм передачи владения ин-
формационным объектом от одного узла другому по требованию.
Анализ механизмов репликации показал, что ее реализация оказывает суще-
ственное влияние на структуру прикладной системы, накладывает ограничения на
допустимые операции с БД со стороны прикладной системы, структуру таблиц,
ограничения целостности, которые можно использовать в системе. В этом плане
для повышения эффективности механизмов репликации целесообразно накопле-
ние и систематизация образцов проектирования структур БД для использования в
прикладных системах аналогично тому, как это делается для образцов проектиро-
вания объектно-ориентированного ПО [9].
1. Дейт К. Дж. Введение в системы баз данных: Пер. c англ. — 6-е издание. — М.: Диалек-
тика, 1998. — 784 с.
2. Wiesmann M., Pedone F., Schiper A., Kemme B., Alonso G. Database Replication Techniques: a
Three Parameter Classification // Proc. 19-th {IEEE} Symp. on Reliable Distributed Systems. — 2000. —
P. 206–218.
3. Holliday J., Steinke R.., Agrawal D., Amr E. A. Epidemic Algorithms for Replicated Databases //
IEEE Transactions on Knowledge and Data Engineering. — 2003. — Vol. 15, N. 3. — P. 1218–1238.
4. Kemme B., Pedone F., Alonso G., Schiper A. Processing Transactions over Optimistic Atomic
Broadcast Protocols // 19-th IEEE International Conf. on Distributed Computing Systems. — 1999. — P.
424–432.
Вопрос построения распределенных информационных систем на основе репликации баз данных
ISSN 1560-9189 Реєстрація, зберігання і обробка даних, 2004, Т. 6, № 4 81
5. Alonso G. Partial Database Replication and Group Communication Primitives // 2nd Europ. Re-
search Seminar on Advances in Distributed Systems. — 1997, March.
6. Kemme B., Alonso G. A New Аpproach to Developing and Implementing Eager Database Repli-
cation Protocols // ACM Transactions on Database Systems. — 2000. — Vol. 25, N. 3. — P. 333–379.
7. Gray J. N., Helland P., Shasha D., O’Neil P. The Dangers of Replication and a Solution // Proc.
of the 1996 ACMSIGMOD International Conf. on Management of Data. — 1996, June. — P. 173–182.
8. Goldring R. Update Replication: What Every Designer Should Know. —
http://scholar.google.com/url?q=http://www.minet.unijena.de/dbis/lehre/ss2002/seminar/3/Gol95.pdf.
9. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного про-
ектирования. Потерны проектирования. — СП.: Питер, 2001. — 368 с.
Поступила в редакцию 10.12.2004
Вопрос построения распределенных информационных
систем на основе репликации баз данных
систем на основе репликации баз данных
Введение
Обзор механизмов репликации, используемых
в современных программных продуктах
Методы повышения эффективности механизмов асинхронной
репликации с возможностью модификации реплик
во всех узлах системы
|