Multi Master против одноранговых архитектур БД

Насколько я понимаю, в архитектуре БД с несколькими мастерами:

  • У вас есть 2+ сервера БД, оба действуют как мастера чтения / записи; а также
  • Это либо до некоторого типа балансировщика нагрузки для балансировки операций между этими несколькими мастерами; а также
  • Всякий раз, когда сервер получает чтение, он выбирает и возвращает запрашиваемые данные локально; а также
  • Всякий раз, когда сервер получает запись, он записывает + коммиты локально, но затем реплицирует эту запись в режиме реального времени на другие серверы (именно поэтому система неявно требует балансировщика нагрузки, чтобы предотвратить передачу одной и той же записи 2+ различным мастерам в в то же время); а также
  • Вы можете иметь активные / активные или активные / пассивные настройки. В первом случае балансировщик нагрузки действительно балансирует записи по всем узлам. Я не очень понимаю последнее (активный / пассивный)

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

Тогда какая (на самом деле) разница между Multi-Master и Peer-to-Peer (P2P)? В системе P2P любое чтение выполняется и возвращается локально, а любая запись записывается локально, а затем реплицируется на все одноранговые узлы... нетак ли это одно и то же?!

3 ответа

Мастер Раб

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

Мастер - Мастер или Мульти Мастер

  • Любой сервер может выполнять чтение / запись.
  • Все серверы реплицируются синхронно. Так что данные всегда согласованы.
  • Может быть настроен для асинхронной репликации, но тогда она становится похожей на архитектуру Peer to Peer
  • Имеет проблему расщепления мозга только с двумя хозяевами. Можно решить, имея не менее 3 мастеров.
  • CouchDB

Пиринговый

  • Все серверы могут выполнять как чтение, так и запись.
  • Асинхронная репликация между серверами, поэтому чтения могут быть разными. (Возможная согласованность)
  • Кассандра, ElasticSearch

Лидер последователь

  • Только лидер выполняет чтение / запись.
  • Последователи реплицируются только асинхронно.
  • Может быть настроен для N последователей для синхронной репликации, чтобы предотвратить потерю данных в случае отказа ведущего.
  • Кафка

Они могут показаться похожими, но есть небольшие различия, надеюсь, это поможет:

В Active/Active записи могут идти на любой сервер, а затем каскадно к другим серверам в кластере.

В Active/Passive чтения будут когда-либо идти только к одному узлу в кластере и затем будут каскадно подключаться к другим узлам.

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

Архитектура с несколькими мастерами Репликация с несколькими мастерами - это метод репликации базы данных, который позволяет хранить данные на группе компьютеров и обновлять их любым членом группы. Все участники реагируют на запросы данных клиентов. ... Основными целями репликации с несколькими мастерами являются повышение доступности и сокращение времени отклика сервера.Одноранговая архитектура В одноранговой (P2P) сети группа компьютеров связана вместе с одинаковыми разрешениями и обязанностями по обработке данных. В отличие от традиционной сети клиент-сервер, никакие устройства в сети P2P не предназначены исключительно для обслуживания или приема данных.

Другие вопросы по тегам