Как установить уровень согласованности отдельного запроса CQL на CQL3?

В более ранних бета-версиях CQ L появилась команда, которую я мог бы использовать для настройки согласованности чтения и записи для отдельной операции CQL. Это выглядело так:

SELECT * FROM users WHERE state='TX' USING CONSISTENCY QUORUM;

Я регулярно использую CQL3 и имею прецедент, где мне нужно иметь возможность выполнять чтение с более высоким уровнем согласованности, чем остальная часть нашего приложения.

Я просмотрел ссылку CQL3 и не нашел упоминания о синтаксисе CQL, который позволяет мне изменять параметры согласованности для каждого запроса, если только Я использую cqlsh (не полезно для разработки приложений.)

Как мне настроить настройку согласованности для каждого запроса с помощью CQL3?

Ответ 1

Aaron, уровень согласованности не требуется устанавливать на уровне протокола - по причинам, описанным здесь: https://issues.apache.org/jira/browse/CASSANDRA-4734

Ответ 2

Сначала установите последовательность, выполнив команду:

CONSISTENCY QUORUM;

а затем выполните запрос:

SELECT * FROM users WHERE state='TX'

В любой момент вы можете проверить последовательность, используя:

 CONSISTENCY;

Ответ 3

Уровень согласованности по умолчанию для любого запроса - "ОДИН". Однако можно установить уровень согласованности на основе запросов, как показано ниже. Настройка уровня согласованности

Основываясь на коэффициенте репликации, расположение раздела (список узлов) можно найти ниже.

nodetool getendpoints Keyspace-name имя таблицы имя-таблицы

$ nodetool getendpoints stresstest status bill
10.134.38.15
10.134.38.24
10.134.38.26