我刚到Cassandra,还没看完医生。只想知道我是否从3节点集群的一个节点运行cqlsh并运行query,例如。
cqlsh node1host -u username -p passwd -k my_cass_keyspace > select ...
结果是来自所有3个节点还是仅仅来自我运行cqsh的节点?很抱歉问了一个很无聊的问题。谢谢。
8gsdolmq1#
答案是肯定的,它来自所有节点,但它取决于您的集群配置、复制因子和一致性级别。为了example:- you 有3个节点的集群,复制因子为3,一致性级别为读写的仲裁,因此无论何时执行插入查询,数据都将复制到所有3个节点,但2个节点的确认足以作为仲裁。如果执行select查询,则会出现相同的填充。您也可以将cassandra文档作为below:- http://cassandra.apache.org/doc/latest/architecture/dynamo.html#复制
ghhaqwfi2#
一般回答:从所有节点。详细回答:您的节点可能是协调器,然后根据您的复制因子,该节点可能从其他节点获取数据(例如rf1,然后您从另一个节点查询分区)。这取决于您的复制因子,以及您的一致性级别。在使用cqlsh时,您可以检查您的一致性(默认值为1):
cqlsh> consistency; Current consistency level is ONE.
您可以通过以下方式进行更改(例如,更改为quorum):
cqlsh> CONSISTENCY QUORUM ;
如果您想了解有关请求执行计划的详细信息,请尝试激活跟踪:
cqlsh> tracing on ;
我希望这有帮助!
2条答案
按热度按时间8gsdolmq1#
答案是肯定的,它来自所有节点,但它取决于您的集群配置、复制因子和一致性级别。
为了example:- you 有3个节点的集群,复制因子为3,一致性级别为读写的仲裁,因此无论何时执行插入查询,数据都将复制到所有3个节点,但2个节点的确认足以作为仲裁。如果执行select查询,则会出现相同的填充。
您也可以将cassandra文档作为below:- http://cassandra.apache.org/doc/latest/architecture/dynamo.html#复制
ghhaqwfi2#
一般回答:从所有节点。
详细回答:您的节点可能是协调器,然后根据您的复制因子,该节点可能从其他节点获取数据(例如rf1,然后您从另一个节点查询分区)。
这取决于您的复制因子,以及您的一致性级别。在使用cqlsh时,您可以检查您的一致性(默认值为1):
您可以通过以下方式进行更改(例如,更改为quorum):
如果您想了解有关请求执行计划的详细信息,请尝试激活跟踪:
我希望这有帮助!