Кассандра: ошибка вставки для кворума уровня согласованности

Мы получаем ошибку "cannot achieve consistency level QUORUM" (подробности ниже) в следующей конфигурации: два центра обработки данных по 6 узлов в каждом, все узлы на одной стойке. Это работает, когда CL установлен как «Local Quorum».

По сути, поскольку мы используем уровень согласованности, требующий согласованности между контроллерами домена, он не может вставить данные. Команда «Nodetool status» показывает, что все 12 узлов запущены и работают.

Что может быть не так? Ваша помощь очень ценится! Спасибо димитрий

Ключевое пространство

CREATE KEYSPACE test6 WITH replication = {'class': 'NetworkTopologyStrategy', 'C
entralUS': '3', 'EastUs': '3'}  AND durable_writes = true;

Запрос

INSERT INTO glsitems (itemid,itemkey) VALUES('1', 'LL');

Ошибка

cassandra-driver-2.7.2\cassandra\cluster.py", line 3347, in result
raise self._final_exception
Unavailable: code=1000 [Unavailable exception] message="Cannot achieve     

consistency level QUORUM" info={'required_replicas':   

4, 'alive_replicas':3, 'consistency': 'QUORUM'}

person Dima Golub    schedule 08.12.2015    source источник
comment
Проверьте количество подключенных узлов с помощью nodetool status   -  person undefined_variable    schedule 09.12.2015


Ответы (1)


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

Правильно настроили снитч?

Snitch - для развертываний с несколькими центрами обработки данных важно убедиться, что у snitch есть полная и точная информация о сети либо путем автоматического обнаружения (RackInferringSnitch), либо с помощью сведений, указанных в файле свойств (PropertyFileSnitch). ссылка

Вы можете найти используемый снитч в файле cassandra yaml, свойство endpoint_snitch.

Вот документация по протоколу данных о существующих snitches с Cassandra 2.0 .

person Adpi2    schedule 09.12.2015