How do I set the consistency level of an individual CQL query in CQL3?

こ雲淡風輕ζ 提交于 2019-11-29 07:19:19

问题


In the earlier beta releases of CQL, there was a command I could use to set the read / write consistency of an individual CQL operation. It looked like this:

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

I use CQL3 regularly and have a use-case where I need to be able to perform a read with a higher consistency level than the rest of our application.

I looked through the CQL3 reference and didn't find any mention of any CQL syntax that allows me to change the consistency settings on a per-query basis, unless I'm using cqlsh (not useful for application development.)

How am I supposed to tune the consistency on a per-request basis using CQL3?


回答1:


Aaron, the Consistency Level is not needed to be set on the protocol level - for the reasons explained here: https://issues.apache.org/jira/browse/CASSANDRA-4734




回答2:


First set the consistency by running command:

CONSISTENCY QUORUM;

and then then run you query:

SELECT * FROM users WHERE state='TX'

At any point you can check the consistency using:

 CONSISTENCY;



回答3:


The default consistency level for any query is "ONE". However, one can set the consistency level on query basis as below.

Based on the Replication factor, the location of the partition (nodes list) can be found as below.

nodetool getendpoints Keyspace-name table-name partition-key value

$ nodetool getendpoints stresstest status bill
10.134.38.15
10.134.38.24
10.134.38.26


来源:https://stackoverflow.com/questions/21442717/how-do-i-set-the-consistency-level-of-an-individual-cql-query-in-cql3

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!