【问题标题】:Cassandra result from running query cqlsh from one of the node cluster从节点集群之一运行查询 cqlsh 的 Cassandra 结果
【发布时间】:2020-05-13 17:35:44
【问题描述】:

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

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

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

【问题讨论】:

    标签: cassandra


    【解决方案1】:

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

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

    这取决于您的复制因素以及您的一致性级别。 您可以在使用 cqlsh 时检查您的一致性(默认为 ONE):

    cqlsh> consistency;
    Current consistency level is ONE.
    

    您可以通过(例如更改为 QUORUM):

    cqlsh> CONSISTENCY QUORUM ; 
    

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

    cqlsh> tracing on ;  
    

    我希望这会有所帮助!

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2013-04-07
        • 2019-07-16
        • 2015-01-10
        • 2013-02-02
        • 2017-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-06
        相关资源
        最近更新 更多