Ответ 1
Aaron, уровень согласованности не требуется устанавливать на уровне протокола - по причинам, описанным здесь: https://issues.apache.org/jira/browse/CASSANDRA-4734
В более ранних бета-версиях CQ L появилась команда, которую я мог бы использовать для настройки согласованности чтения и записи для отдельной операции CQL. Это выглядело так:
SELECT * FROM users WHERE state='TX' USING CONSISTENCY QUORUM;
Я регулярно использую CQL3 и имею прецедент, где мне нужно иметь возможность выполнять чтение с более высоким уровнем согласованности, чем остальная часть нашего приложения.
Я просмотрел ссылку CQL3 и не нашел упоминания о синтаксисе CQL, который позволяет мне изменять параметры согласованности для каждого запроса, если только Я использую cqlsh (не полезно для разработки приложений.)
Как мне настроить настройку согласованности для каждого запроса с помощью CQL3?
Aaron, уровень согласованности не требуется устанавливать на уровне протокола - по причинам, описанным здесь: https://issues.apache.org/jira/browse/CASSANDRA-4734
Сначала установите последовательность, выполнив команду:
CONSISTENCY QUORUM;
а затем выполните запрос:
SELECT * FROM users WHERE state='TX'
В любой момент вы можете проверить последовательность, используя:
CONSISTENCY;
Уровень согласованности по умолчанию для любого запроса - "ОДИН". Однако можно установить уровень согласованности на основе запросов, как показано ниже.
Основываясь на коэффициенте репликации, расположение раздела (список узлов) можно найти ниже.
nodetool getendpoints Keyspace-name имя таблицы имя-таблицы
$ nodetool getendpoints stresstest status bill
10.134.38.15
10.134.38.24
10.134.38.26