GC暂停期间Cassandra客户端行为

时间:2016-07-13 11:32:42

标签: cassandra garbage-collection

考虑我们有一个带有节点[A,B,C]的cassandra集群的场景,现在客户端X向节点A发出请求。现在,如果旧的gc开始在A上运行,则节点A将被暂停。现在,在以下情况下客户请求的行为是什么

  1. GC暂停在客户端请求到达A
  2. 之前启动
  3. GC客户端请求到达A后暂停启动
  4. 将请求转到另一个节点,否则它将一直等待回复,直到指定超时。

    cassandra中的读延迟指标也考虑此GC暂停时间吗?

1 个答案:

答案 0 :(得分:1)

据我所知,驱动程序不知道节点何时出现GC暂停。假设GC暂停通常很短。

从我所看到的情况来看,这会导致某些请求的响应时间在GC暂停期间碰巧到达节点时偶尔会出现峰值。

我想如果GC暂停时间足够长,那么客户端会收到超时错误,需要重试请求。

我不使用Cassandra提供的任何延迟指标。我认为在客户端应用程序中测量延迟更准确。如果要忽略GC暂停的延迟峰值,则测量中值延迟时间,因为这对于远程峰值延迟时间不敏感。如果你想要计算峰值,那么计算自峰值将拉高平均值以来的平均延迟时间。