почему запись не завершается, если коэффициент репликации равен 3, но работают только 2 узла

У меня есть 2 узла Cassandra

C:\Users\manuc\Documents\manu\codingjedi>docker container ps -a
CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS                        PORTS                                                       NAMES
1923093e84f3        app:30may2020   "/bin/sh -c 'codingj…"   21 hours ago        Up 22 minutes                 0.0.0.0:9000->9000/tcp                                      hardcore_bardeen
381fd5996008        app:30may2020   "/bin/sh -c 'codingj…"   21 hours ago        Exited (255) 24 minutes ago                                                               stupefied_wozniak
85dd140e19dd        ca795bbd8fd7              "docker-entrypoint.s…"   21 hours ago        Up 24 minutes                 7000-7001/tcp, 7199/tcp, 9042/tcp, 9160/tcp                 cassandra2
f70caa70fe81        ca795bbd8fd7              "docker-entrypoint.s…"   21 hours ago        Up 25 minutes                 7000-7001/tcp, 7199/tcp, 9160/tcp, 0.0.0.0:9042->9042/tcp   cassandra1

Коэффициент репликации для моего пространства ключей равен 3.

cqlsh> describe keyspace mykeyspace;

CREATE KEYSPACE mykeyspace WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '3'}  AND durable_writes = true;

Но когда я запускаю запрос для добавления в базу данных, он успешно выполняется.

Вопрос - Разве запрос не должен завершиться ошибкой?

1 ответ

Полагаю, я запутался между фактором репликации (RF) и уровнем согласованности (CL). Если меньше нет. узлов, то запрос будет работать до тех пор, пока не будет достигнут уровень согласованности. Уровень согласованности один, поэтому код работает. Если я изменю CL на 3, запрос не будет выполнен. Что касается RF, когда появляется 3-й узел, он получает данные от других 2-х узлов.

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