【问题标题】:Notifiy when Cassandra replica receives a write当 Cassandra 副本收到写入时通知
【发布时间】:2016-12-07 20:14:07
【问题描述】:

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

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

【问题讨论】:

  • 也许你可以通过记录一些 Cassandra 活动来做到这一点。您可以使用配置目录中的logback.xml 来做到这一点。

标签: cassandra replication


【解决方案1】:

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

为了获得更一般的意义,您可以使用CASSANDRA-11569 来获取跨 DC 消息延迟,即协调器突变到达副本(或至少其他 DC)所需的时间。这不一定表示其他 DC 中的法定节点需要多长时间才能因代理写入而发生突变。

虽然节点的时间漂移​​确实很难。

过去,有些人通过执行本地仲裁和每个仲裁请求并比较它们来解决此问题。执行 LQ 然后 EQ 写入的一个问题是,当前往远程 DC 时,Cassandra 将通过单个代理写入搭载该 DC 中的所有写入(与实际发送到每个节点的协调器相比)。如果该节点遇到 GC,它很可能会出现峰值。同样在现代集群上,存在推测性重试,这仍会将第一次写入的时间添加到延迟中。

【讨论】:

    猜你喜欢
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多