如何在CQL3中设置单个CQL查询的一致性级别?

时间:2014-01-29 21:09:11

标签: cassandra cql3 datastax-enterprise consistency

earlier beta releases of CQ L中,有一个命令我可以用来设置单个CQL操作的读/写一致性。它看起来像这样:

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

我经常使用CQL3并且有一个用例,我需要能够以比我们应用程序的其余部分更高的一致性级别执行读取。

我浏览了CQL3 reference并没有发现任何提及任何允许我在每个查询基础上更改一致性设置的CQL语法,除非我使用的是cqlsh(对于应用程序开发没用) 。)

我应该如何使用CQL3在每个请求的基础上调整一致性?

3 个答案:

答案 0 :(得分:19)

首先通过运行命令设置一致性:

CONSISTENCY QUORUM;

然后运行查询:

SELECT * FROM users WHERE state='TX'

您可以随时使用以下方法检查一致性:

 CONSISTENCY;

答案 1 :(得分:8)

Aaron,不需要在协议级别设置一致性级别 - 原因如下所述:https://issues.apache.org/jira/browse/CASSANDRA-4734

答案 2 :(得分:2)

任何查询的默认一致性级别为" ONE"。但是,可以在查询的基础上设置一致性级别,如下所示。 Setting Consistency Level

根据复制因子,可以在下面找到分区(节点列表)的位置。

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

static Evas_Object *
create_singlelines_editfield_layout(Evas_Object *parent) {
Evas_Object *editfield, *entry, *button, *buttonOk;

editfield = elm_layout_add(parent);
elm_layout_theme_set(editfield, "layout", "editfield", "singleline");
evas_object_size_hint_align_set(editfield, EVAS_HINT_FILL, 0.5);
evas_object_size_hint_weight_set(editfield, EVAS_HINT_EXPAND, 0.5);

entry = elm_entry_add(editfield);
elm_entry_single_line_set(entry, EINA_TRUE);
elm_entry_scrollable_set(entry, EINA_TRUE);
elm_object_part_text_set(entry, "elm.guide", "Enter Your Weight");
evas_object_smart_callback_add(entry, "focused", editfield_focused_cb, editfield);
evas_object_smart_callback_add(entry, "unfocused", editfield_unfocused_cb, editfield);
evas_object_smart_callback_add(entry, "changed", editfield_changed_cb, editfield);
evas_object_smart_callback_add(entry, "preedit,changed", editfield_changed_cb, editfield);
elm_object_part_content_set(editfield, "elm.swallow.content", entry);
//elm_object_part_content_set(editfield, "elm.swallow.button", button);
return editfield;
}