Cassandra从节点群集之一运行查询cqlsh的结果

时间:2020-01-28 10:15:14

标签: cassandra

我是cassandra的新手,还没有读完文档。 只想知道我是否从3个节点的群集中的一个节点运行cqlsh并运行查询 例如

cqlsh node1host -u username -p passwd -k my_cass_keyspace
> select ...

结果是来自所有3个节点还是仅仅是我在其中运行cqsh的节点的结果? 对不起,非常菜鸟的问题。 谢谢。

2 个答案:

答案 0 :(得分:2)

一般回答:来自所有节点。

详细答案: 您的节点可能是协调者,然后根据您的复制因子,该节点可能会从其他节点获取数据(例如RF 1,然后从另一个节点查询分区)。

这取决于您的复制因子以及一致性级别。 您可以通过以下方式检查cqlsh的一致性(默认值为ONE):

cqlsh> consistency;
Current consistency level is ONE.

您可以将其更改为(例如,更改为QUORUM):

cqlsh> CONSISTENCY QUORUM ; 

如果您想了解有关请求执行计划的详细信息,请尝试激活跟踪:

cqlsh> tracing on ;  

我希望这会有所帮助!

答案 1 :(得分:1)

答案是肯定的,它来自所有节点,但这取决于您的群集配置,复制因子和一致性级别。

例如:-您有3个节点集群,复制因子为3,并且一致性级别是读写的法定比例,因此,无论何时执行插入查询,您的数据都将复制到所有3个节点,但是2个节点的确认足以仲裁员为法定人数。如果您执行选择查询,则遵循相同的填充条件。

您还可以参考以下Cassandra文档:- http://cassandra.apache.org/doc/latest/architecture/dynamo.html#replication