Notifiy当Cassandra副本收到一个写

时间:2016-12-07 20:14:08

标签: cassandra replication

我想测量在一个副本上进行写入传播到其他地理分布式副本所需的时间(用于实验目的)。 Cassandra是否提供了一些衡量这一点的机制?

PS。一个基本的谷歌搜索没有返回任何简单的结果(事实上根本没有任何相关性),因此我假设这样做并不容易。还欢迎任何其他涉及其他工具的建议。

1 个答案:

答案 0 :(得分:2)

对于一次性的事情,您可以在查询上启用跟踪并执行CL.ALL查询,跟踪数据将具有到达每个副本的时间戳。但它是你无法为所有查询做的事情。

为了更一般地理解,您可以使用CASSANDRA-11569来获取交叉DC消息延迟,这是协调器突变到达副本(或至少其他DC)所需的时间。这并不一定表明由于代理写入,其他DC中的法定数量的节点需要多长时间才能获得突变。

节点的时间漂移​​确实可以让它变得困难。

有些人过去通过执行本地法定人数和每个法定人数请求并进行比较来解决这个问题。进行LQ然后进行EQ写入的问题是,当进入远程DC时,Cassandra将通过单个代理写入(相对于实际发送到每个节点的协调器)来捎带该DC中的所有写入。如果该节点命中GC,则可能会出现峰值。同样在现代集群上,存在推测性重试,这仍然会增加第一次写入延迟的时间。