7

我正在使用 Cassandra 及其 Node.JS 驱动程序 Helenus 进行一些测试。有没有办法使用 CQL 更改查询的一致性级别?

Helenus 文档仅显示了使用 Helenus Thrift 连接器执行此操作的示例,但我想使用 CQL 连接器。

我试图像这样查询 Cassandra

conn.cql(cqlRead, vals, {ConsistencyLevel:ANY, gzip:true}, cb);

但是节点抛出了这个错误

ReferenceError: ANY is not defined

然后,我将 'ANY' 更改为 '1' 并且 node 运行了代码,但我没有注意到任何区别。

4

2 回答 2

3

问题是您不能将 CL.ANY 用于读取,只能用于写入。ANY 表示将提交日志写入计为成功,即使没有可用的副本也是如此。由于查询无法读取提交日志,因此使用 CL.ANY 进行读取没有意义,因此 Cassandra 不会让您这样做。

于 2013-03-22T14:59:42.480 回答
1

我看过Helenus 文档,他们以这种方式设置了一致性

cf.get('foo', {consistency:helenus.ConsistencyLevel.ONE}, function(err, row){
     // Your code here
})

您是否尝试过一致性:helenus.ConsistencyLevel.ANY。我认为您可能会得到与ReferenceError不同的另一个

于 2016-01-11T16:54:09.280 回答