почему запись не завершается, если коэффициент репликации равен 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-х узлов.