Можно ли использовать Cassandra для репликации, предоставления «мастер» и фильтрации данных на сайтах? - PullRequest
0 голосов
/ 09 мая 2018

Я исследую технологию для нового проекта.

У нас есть несколько сайтов, данные которых должны поступать с главного сервера. Каждый сайт может иметь только те данные, которые имеют отношение к владельцу (компании) сайта. Каждый сайт может иметь несколько независимых машин, каждый из которых имеет свою собственную БД.

Мастер будет иметь все данные для всех сайтов / машин. Ожидается автономное использование со спорадическим подключением.

Я могу использовать что-то вроде симметричного-ds, чтобы сделать это с RDBMS. например: настроить репликацию для каждого сайта таким образом, чтобы каждый сайт получал только данные, относящиеся к этому сайту.

То, что не дает мне (по крайней мере, автоматически), - это возможность записи на одну из локальных машин, которая автоматически реплицируется на другие машины, находящиеся на этом сайте. Это важно в автономном случае, когда запись на компьютер A на сайте не приводит к автоматической записи / обновлению на компьютере B того же сайта. Запись в B будет происходить естественным образом как часть симметричной репликации ds при установлении соединения, но мне нужно что-то, что будет работать локально, когда соединение разорвано.

Мне интересно, подходит ли для этого что-то вроде Кассанды?

Я думаю:

  • Каждый сайт представляет собой набор реплик для себя (даже если этот сайт это всего лишь одна машина)
  • Каждый сайт реплицирует данные на главный сайт
  • Записи в мастере копируются на соответствующие сайты (в зависимости от содержания данных)

1 Ответ

0 голосов
/ 09 мая 2018

Из коробки нет такой функциональности в Кассандре. Теоретически вы можете создать что-то, что вам нужно, используя функциональность DSE Advanced Replication , но это требует экспериментов для построения правильного решения. Хотя, если решение основано только на контенте, возможно, это не сработает.

Репликация по умолчанию между контроллерами домена в Cassandra может выдерживать простои, особенно если ваше программное обеспечение использует правильные уровни согласованности при записи / чтении данных. Но все данные будут реплицироваться на все контроллеры домена, пока вы не разделите их на разные пространства ключей, для которых все будут иметь мастер как один контроллер домена, а отдельные контроллеры домена как 2-й контроллер домена.

...