Jump to content

Репликация с несколькими хозяевами

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

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

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

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

Основными целями репликации с несколькими хозяевами являются повышение доступности и сокращение времени ответа сервера. [1]

Преимущества

[ редактировать ]
  • Доступность : в случае сбоя одного мастера другие мастера продолжают обновлять базу данных .
  • Распределенный доступ: Мастера могут быть расположены на нескольких физических площадках, т.е. распределены по сети.

Недостатки

[ редактировать ]
  • Согласованность . Большинство систем репликации с несколькими хозяевами являются лишь слабо согласованными, т. е. ленивыми и асинхронными, что нарушает ACID . свойства
  • Производительность . Системы репликации Eager сложны и увеличивают задержку связи .
  • Целостность . Такие проблемы, как разрешение конфликтов, могут стать неразрешимыми по мере увеличения количества задействованных узлов и увеличения задержки.

Реализации

[ редактировать ]

Службы каталогов

[ редактировать ]

Многие серверы каталогов основаны на облегченном протоколе доступа к каталогам (LDAP) и реализуют репликацию с несколькими хозяевами.

Активный каталог

[ редактировать ]

Одной из наиболее распространенных реализаций репликации с несколькими хозяевами на серверах каталогов является Microsoft от Active Directory . В Active Directory объекты, обновляемые на одном контроллере домена, затем реплицируются на другие контроллеры домена посредством репликации с несколькими хозяевами. Не обязательно, чтобы все контроллеры домена реплицировали друг друга, поскольку это может привести к чрезмерному сетевому трафику в крупных развертываниях Active Directory. Вместо этого контроллеры домена имеют сложную схему обновления, которая гарантирует своевременное обновление всех серверов без чрезмерного трафика репликации. Однако некоторые потребности Active Directory лучше удовлетворяются с помощью гибкой операции с одним главным устройством .

Каталог CA

[ редактировать ]

CA Directory поддерживает репликацию с несколькими хозяевами.

ОпенДС/ОпенДЖ

[ редактировать ]

В OpenDS (и его преемнике OpenDJ ) реализована поддержка нескольких мастеров, начиная с версии 1.0. Репликация с несколькими хозяевами OpenDS/OpenDJ является асинхронной, она использует журнал с механизмом публикации-подписки, который позволяет масштабироваться на большое количество узлов. Репликация OpenDS/OpenDJ разрешает конфликты на уровне записи и атрибута. Репликация OpenDS/OpenDJ может использоваться в глобальной сети .

OpenLDAP , широко используемый сервер LDAP с открытым исходным кодом , реализует репликацию с несколькими хозяевами, начиная с версии 2.4 (октябрь 2007 г.) [1] .

Системы управления базами данных

[ редактировать ]

Амазонка Аврора

[ редактировать ]

Amazon Aurora состоит из узлов записи, которые реплицируют записи повторного выполнения, и 6 узлов хранения. Узел записи отправляет изменение на каждый узел хранения, каждый из которых проверяет наличие конфликтов, а затем сообщает о подтверждении или отклонении изменения. [2]

Apache CouchDB использует простую систему репликации с несколькими хозяевами на основе HTTP, созданную на основе использования хранилища данных только для добавления и использования многоверсионного управления параллелизмом (MVCC) .

Каждый документ содержит идентификатор ревизии, поэтому каждая запись хранит временную шкалу развития всех предыдущих идентификаторов ревизий, ведущих к ней самой, что обеспечивает основу системы MVCC CouchDB . Кроме того, он сохраняет индекс последовательности для всей базы данных. «Процесс репликации копирует только последнюю версию документа, поэтому все предыдущие версии, которые были только в исходной базе данных, не копируются в целевую базу данных». [3]

Репликатор CouchDB действует как простой HTTP-клиент, действующий как на источник и целевая база данных. Он сравнивает текущие идентификаторы последовательностей для базы данных, вычисляет различия редакций и вносит необходимые изменения в базу данных. цель, основанная на том, что она нашла в истории исходная база данных. Двунаправленная репликация — это результат простого выполнения еще одной репликации с источник и целевые значения поменялись местами.

АрангоДБ

[ редактировать ]

ArangoDB — это собственная многомодельная система баз данных, использующая репликацию с несколькими хозяевами. Кластеры в ArangoDB используют модель CP «главный/главный» без единой точки отказа. Когда кластер сталкивается с сетевым разделом, ArangoDB предпочитает поддерживать внутреннюю согласованность, а не доступность. Клиенты видят базу данных одинаково, независимо от того, к какому узлу они подключаются. И кластер продолжает обслуживать запросы даже в случае сбоя одной машины. [4]

Cloudant , система распределенных баз данных, использует в основном тот же HTTP API, что и Apache CouchDB , и предоставляет ту же возможность репликации с использованием Multiversion Concurrency Control (MVCC) . Базы данных Cloudant могут реплицироваться между собой, но внутри узлов кластеров Cloudant используется репликация с несколькими хозяевами, чтобы оставаться синхронизированными друг с другом и обеспечивать высокую доступность для потребителей API.

Кластер eXtremeDB

[ редактировать ]

eXtremeDB Cluster — это подсистема кластеризации для семейства продуктов встроенных баз данных McObject eXtremeDB . Он поддерживает согласованность базы данных на нескольких аппаратных узлах путем синхронной репликации транзакций (двухфазная фиксация). Важной характеристикой eXtremeDB Cluster является репликация транзакций , в отличие от схем репликации на основе файлов журналов, операторов SQL или других схем репликации, которые могут или не могут гарантировать успех или неудачу всех транзакций. Соответственно, eXtremeDB Cluster — это система, совместимая с ACID (а не с BASE или конечной согласованностью ); запрос, выполненный на любом узле кластера, вернет тот же результат, как если бы он был выполнен на любом другом узле кластера.

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

Microsoft SQL обеспечивает репликацию с несколькими хозяевами посредством одноранговой репликации. Он обеспечивает масштабируемое решение и высокую доступность за счет хранения копий данных на нескольких узлах. Одноранговая репликация, построенная на основе репликации транзакций, обеспечивает распространение транзакционно-согласованных изменений практически в реальном времени. [5]

MySQL/МарияДБ

[ редактировать ]

На базовом уровне можно реализовать схему репликации с несколькими хозяевами, начиная с MySQL версии 3.23, с циклической репликацией. Помимо этого, MariaDB и MySQL поставляются с некоторой поддержкой репликации, каждая из которых имеет свои нюансы.

Что касается прямой поддержки, мы имеем:

MariaDB: изначально поддерживает репликацию с несколькими хозяевами, начиная с версии 10.0, но разрешение конфликтов не поддерживается, поэтому каждый мастер должен содержать разные базы данных. В MySQL это называется multi-source, доступное начиная с версии 5.7.6 .

MySQL: MySQL Group Replication, плагин для виртуального синхронного мультимастера с обработкой конфликтов и распределенным восстановлением, был выпущен в версии 5.7.17 .

Кластерные проекты:

MySQL Cluster поддерживает обнаружение и разрешение конфликтов между несколькими мастерами, начиная с версии 6.3, что обеспечивает настоящую возможность работы с несколькими мастерами для MySQL Server.

Существует также внешний проект Galera Cluster , созданный codership. Архивировано 27 сентября 2011 г. на Wayback Machine , который обеспечивает настоящую возможность работы с несколькими мастерами на основе ответвления механизма хранения InnoDB и пользовательских плагинов репликации. Репликация синхронная, поэтому конфликт невозможен.

Percona XtraDB Cluster также представляет собой комбинацию библиотеки репликации Galera и MySQL, поддерживающей несколько мастеров.

Существуют различные варианты синхронной репликации с несколькими хозяевами. Примерами являются Postgres-XL , доступный по публичной лицензии Mozilla, и PostgresXC (теперь известный как Postgres-X2 ), который доступен по той же лицензии, что и сам PostgreSQL. Обратите внимание, что проект PgCluster ( архивировано 5 июля 2017 г. на Wayback Machine ) был закрыт в 2007 г.

Документация по репликации для PostgreSQL [6] классифицирует различные доступные типы репликации. Существуют различные варианты распределенной мультимастерной, включая Bucardo , Rubyrep и BDR Bi-Directional Replication .

PostgreSQL БДР
[ редактировать ]

BDR нацелен на возможное включение в ядро ​​PostgreSQL и был протестирован как демонстрирующий значительно повышенную производительность. [7] по сравнению с предыдущими вариантами. BDR включает репликацию записи данных (DML), а также изменения в определении данных (DDL) и глобальных последовательностях. Узлы BDR можно обновить онлайн, начиная с версии 0.9. Компания 2ndQuadrant непрерывно разрабатывает BDR с 2012 года, а система используется в производстве с 2014 года. Последняя версия BDR 3.6 обеспечивает обнаружение конфликтов на уровне столбцов, CRDT, быструю репликацию, согласованность запросов на нескольких узлах и многие другие функции.

В Ingres Replicator объекты, обновляемые на одном сервере Ingres, затем можно реплицировать на другие серверы, локальные или удаленные, посредством репликации с несколькими хозяевами. В случае сбоя одного сервера клиентские соединения могут быть перенаправлены на другой сервер. Не требуется, чтобы все серверы Ingres в среде реплицировались друг с другом, поскольку это может привести к чрезмерному сетевому трафику в крупных реализациях. Вместо этого Ingres Replicator позволяет реплицировать соответствующие данные на соответствующие серверы без чрезмерного трафика репликации. Это означает, что некоторые серверы в среде могут служить кандидатами на аварийное переключение, в то время как другие серверы могут соответствовать другим требованиям, например, управлять подмножеством столбцов или таблиц для решения отдела, подмножеством строк для географического региона или односторонней репликацией для отчетности. сервер. В случае сбоя источника, цели или сети целостность данных обеспечивается с помощью этого протокола двухфазной фиксации , гарантируя, что либо вся транзакция реплицируется, либо ничего из нее не реплицируется. Кроме того, Ingres Replicator может работать с СУБД различных производителей. [ который? ] чтобы соединить их.

См. также

[ редактировать ]
  1. ^ Postgres-XC. Архивировано 1 июля 2012 г. на Wayback Machine в разделе « Что такое Postgres-XC?». :

    Масштабируемость записи означает, что Postgres-XC может быть настроен с любым количеством серверов баз данных и обрабатывать гораздо больше операций записи (обновление операторов SQL) по сравнению с тем, что не может сделать один сервер базы данных.

  2. ^ «Создавайте высокодоступные приложения MySQL с помощью Amazon Aurora Multi-Master» . 8 августа 2019 г.
  3. ^ «Репликация Apache CouchDB» . Apache Foundation — проект Apache CouchDB.
  4. ^ «Кластерная архитектура ArangoDB» . ArangoDB — Архитектура ArangoDB.
  5. ^ Одноранговая репликация транзакций
  6. ^ Сравнение различных решений репликации для PostgreSQL Как указано в документации PostgreSQL 9. Проверено 8 мая 2012 г.
  7. ^ Производительность BDR Петр Елинек, 2-й квадрант. Проверено 10 июля 2014 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 783c5cda78dca38cba1afb961c895677__1704306540
URL1:https://arc.ask3.ru/arc/aa/78/77/783c5cda78dca38cba1afb961c895677.html
Заголовок, (Title) документа по адресу, URL1:
Multi-master replication - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)