假设RF = 3,在5个节点的单个数据中心中,我如何才能看到我的数据确切地位于任何keyspace.tablename的哪个节点中,以及如何证明数据在3个节点上被精确复制。
我尝试了各种nodetool命令,但没有一个命令能给出确切的结果或我想要看到的结果。
发布于 2018-07-09 21:14:10
您可以从客户端(例如cqlsh)使用具有各种一致性级别(CL)的插入和查询来证明这一点。我会解释的:
使用table
INSERT创建关键空间
INSERT数据(这意味着所有3个副本都必须确认写入已完成所有节点都在运行查询(SELECT) )使用CL=ALL查询数据(所有3个副本必须发送响应,才能将查询视为
C* on 1个节点关闭(DN状态在nodetool status中))使用d18对数据进行查询(d17)(所有3个副本都必须发送响应,才能认为查询成功)。
a.如果查询成功,则所有3个副本仍在运行,您需要停止另一个C*节点。
b.如果查询失败,则将CL设置为CL=QUORUM (3个副本中只有2个必须发送响应才能认为查询成功),然后再次执行查询。
您可以使用CL=ONE甚至CL=ANY来继续这个序列。
您可以阅读有关cqlsh和如何修改CL here的更多信息
https://stackoverflow.com/questions/51083489
复制相似问题