Испытание Кассандры R + W> N - PullRequest
1 голос
/ 11 января 2020

Я хочу явно показать правило R + W > N на презентации.

Итак, моя первоначальная идея, как это сделать, заключается в следующем:

// setup
1: Create a Docker network with 3 Cassandra Nodes.  
2: Create a simple Keyspace with Replication-Factor of 3.  
3: Explicitly shutdown two of the docker nodes.

4: Create a write query inserting some data with W=1
   As two of the nodes are down but one is still online this should succeed

5: Bring both of the nodes back online
6: Reading the Data I just pushed to one node with R=1

Если я понимаю R + W > N правильно у меня теперь должна быть возможность 2/3 получить противоречивые данные. Это именно то, что я хочу показать.

Мой вопрос:
Есть ли параметр, который мне нужно отключить, чтобы запретить синхронизацию узлов при их повторном подключении?

То есть мне нужно отключить эти опции?

1 Ответ

1 голос
/ 11 января 2020

Вам нужно отключить подсказки на всех узлах (установите hinted_handoff_enabled в cassandra.yaml на false) - в этом случае репликация произойдет только тогда, когда вы явно выполните nodetool repair.

Вам также необходимо убедиться, что read_repair_chance и dclocal_read_repair_chance установлены в 0 для таблицы, где вы будете проводить тест. Самый простой способ - указать эти параметры при создании таблицы:

create table (

....)
WITH read_repair_chance = 0.0 and dclocal_read_repair_chance = 0.0;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...