如果说RF = 3,则在5个节点的单个数据中心中,如何查看我的数据在哪个keyspace.tablename的确切位置上,以及如何证明数据已在3个节点上完全复制。 / p>
我尝试了各种nodetool命令,但没有一个能给我确切的结果或我想看到的结果。
答案 0 :(得分:3)
您可以从客户端(例如,cqlsh
)使用具有各种一致性级别(CL)的插入和查询来证明这一点。我会解释:
INSERT
和CL=ALL
的数据(这意味着所有3个副本都必须确认写入成功)SELECT
向上查询(CL=ALL
)数据(所有3个副本必须发送响应才能使查询成功)当1个节点处于关闭状态(DN
中的nodetool status
状态)(SELECT
)使用CL=ALL
查询数据时(所有3个副本都必须为该查询将被视为成功)。
a。如果查询成功,则所有3个副本仍处于启动状态,您需要停止另一个C *节点。
b。如果查询失败,请将CL设置为CL=QUORUM
(3个副本中只有2个必须发送响应才能使查询成功),然后再次执行查询。
您可以使用CL=ONE
甚至CL=ANY
继续执行此顺序。
您可以详细了解cqlsh
以及如何修改CL here