Как добиться репликации частичных данных для следующего варианта использования - PullRequest
0 голосов
/ 13 января 2019

Я хочу построить систему со следующими требованиями к репликации данных. На картинке прикреплено:

  1. Узел 1 имеет 2 сущности: сущность 1 и сущность 2.
  2. Каждая сущность имеет несколько строк данных, скажем (Row1, Row2, Row3)
  3. Узел 2 и Узел 3 являются полной копией Узла 1 и, возможно, в одном центре обработки данных.
  4. Узел 4 находится в другом месте и имеет только Строку 1 от Entity1 и Entity2.
  5. Узел 5 находится в другом месте и имеет только Row2 от Entity 1 и Entity2.

Идея заключается в том, что Node4 и Node5 будут находиться в географической близости от системы-потребителя, и потребитель может обмениваться данными с локальными копиями в Node 4 и Node5, если сеть не работает.

В обычный рабочий день - допустимо ограничить все записи для Узла 1 и разрешить Узлу 4 или Узлу 5 выполнять запись только тогда, когда Узел 1 не работает.

Я не уверен, какая база данных может поддерживать это без расширенного управления через код.

Репликация модели данных

Пока я нашел это:

  1. Cassandra может выполнять репликацию на основе пространства ключей, но это может быть сложно, так как у меня более 2000 удаленных мест для частичных данных. Я могу подумать о том, чтобы сказать 200 пространств клавиш с 10 расположениями, совместно использующими одно и то же пространство клавиш, что создает меньшие издержки, даже если данные, скопированные на локальные узлы, не всегда будут им полезны.
  2. Mongodb имеет открытый запрос на эту функцию (https://jira.mongodb.org/browse/SERVER-1559)
  3. Couchbase имеет фильтрацию на основе XDCR, которая выглядит как потенциальное решение.

Подскажите, пожалуйста, верно ли мое понимание?

1 Ответ

0 голосов
/ 14 января 2019

Да, Couchbase XDCR - жизнеспособное решение. Вы могли бы 1. Настройте Узел 1, Узел 4 и Узел 5 как три отдельных кластера данных. 2. настроить однонаправленный XDCR от узла 1 до узла 4 с выражением фильтрации, которое соответствует только строке 1 3. настроить однонаправленный XDCR от узла 1 до узла 5 с выражением фильтрации, которое соответствует только строке 2.

Для получения дополнительной информации, пожалуйста, обратитесь к https://docs.couchbase.com/server/6.0/learn/clusters-and-availability/xdcr-overview.html. Фильтрация XDCR: https://docs.couchbase.com/server/6.0/learn/clusters-and-availability/xdcr-filtering.html

...