LWT и Консистенция в Кассандре

Кажется, это ошибка для меня,

1) Я создал пространство ключей с коэффициентом репликации "3"

 CREATE KEYSPACE IF NOT EXISTS replicationtest WITH replication = {'class':'SimpleStrategy','replication_factor' : 3};

ПРИМЕЧАНИЕ. Это кластер с одним узлом, но коэффициент репликации я сохранил равным 3, поэтому позже я добавлю новые узлы в кластер.

2) Я установил уровень согласованности как ОДИН

 cqlsh:replicationtest> CONSISTENCY ONE

3) Я создал "тестовый стол"

CREATE TABLE IF NOT EXISTS testtable("partitionId" text, "name" text, "value" text, primary key ("partitionId","name"));

4) Теперь я попробовал простой запрос INSERT

INSERT INTO testtable("partitionId", "name", "value") VALUES ('testtable','testname', 'testvalue');

ЭТО РАБОТАЕТ, КАК ОЖИДАЕТСЯ, ТАК КАК УРОВЕНЬ согласованности

5) Теперь я попытался вставить запрос с LWT (ЕСЛИ НЕ СУЩЕСТВУЕТ)

INSERT INTO testtable("partitionId", "name", "value") VALUES ('testtable','testnameanew', 'testvaluenew') IF NOT EXISTS; 

ТЕПЕРЬ ОШИБКА С NoHostAvailable: ОШИБКА

Может кто-нибудь объяснить, как это исправить? Как выполнить этот LWT с последовательностью как 1?

1 ответ

Lwt использует последовательный уровень последовательно под капотом, и поскольку RF равен 3, он ожидает, что s 2 узла будет работать. Следовательно, операция не выполняется, как ожидалось. Прочитайте это для получения дополнительной информации.

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