LWT и Консистенция в Кассандре - PullRequest
0 голосов
/ 31 октября 2018

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

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 Ответ

0 голосов
/ 31 октября 2018

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

...