Возможно ли иметь «локальное» пространство клавиш в кластере кассандры с несколькими центрами обработки данных? - PullRequest
1 голос
/ 09 апреля 2019

Могу ли я запретить синхронизацию пространства ключей с другим центром данных, НЕ включив другой центр данных в определение репликации пространства ключей?По-видимому, это не так.

В моем собственном тесте я установил два кластера Kubernetes в GCP, каждый из которых служит центром обработки данных Cassandra.В каждом кластере k8s есть 3 узла.

Сначала я настроил центр обработки данных DC-WEST и создал демонстрацию пространства ключей с помощью этого: CREATE KEYSPACE demo WITH replication = {‘class’: ‘NetworkTopologyStrategy’, ‘DC-WEST’ : 3};

Затем я установил центр обработки данных DC-EAST без добавлениялюбое использование ключей.

Чтобы объединить два центра обработки данных, я изменяю переменную окружения CASSANDRA_SEEDS в YAML Cassandra StatefulSet, чтобы включить узлы начальных значений из обоих центров обработки данных (я использую сеть хоста).

Но после этого я замечаю, что пространство ключей demo синхронизируется с DC-EAST, хотя пространство ключей имеет только DC-WEST в репликации.

cqlsh> select data_center from system.local
... ;

data_center
-------------
DC-EAST     <-- Note: this is from the DC-EAST datacenter

(1 rows)
cqlsh> desc keyspace demo

CREATE KEYSPACE demo WITH replication = {'class': 'NetworkTopologyStrategy', 'DC-WEST': '3'}  AND durable_writes = true;

Таким образом, в DC-EAST мы видим demo пространство ключей, которое должно копироваться только на DC-WEST!Что я делаю не так?

Ответы [ 2 ]

3 голосов
/ 10 апреля 2019

Стратегии репликации Cassandra контролируют место размещения данных, но фактическая схема (наличие таблицы / центров обработки данных / и т. Д.) Является глобальной.

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

2 голосов
/ 10 апреля 2019

Вы не указали, как вы развернули свой кластер Cassandra в Kubernetes, но похоже, что ваши узлы в DC-WEST могут быть настроены так, чтобы сказать, что они DC-EAST.

Я бы проверил ConfigMap для набора состояний в DC-WEST. Может быть, он имеет значение DC-EAST для cassandra-rackdc.properties (?). Подробнее о cassandra-rackdc.properties файле здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...