考虑我们有一个带有节点[A,B,C]的cassandra集群的场景,现在客户端X向节点A发出请求。现在,如果旧的gc开始在A上运行,则节点A将被暂停。现在,在以下情况下客户请求的行为是什么
将请求转到另一个节点,否则它将一直等待回复,直到指定超时。
cassandra中的读延迟指标也考虑此GC暂停时间吗?
答案 0 :(得分:1)
据我所知,驱动程序不知道节点何时出现GC暂停。假设GC暂停通常很短。
从我所看到的情况来看,这会导致某些请求的响应时间在GC暂停期间碰巧到达节点时偶尔会出现峰值。
我想如果GC暂停时间足够长,那么客户端会收到超时错误,需要重试请求。
我不使用Cassandra提供的任何延迟指标。我认为在客户端应用程序中测量延迟更准确。如果要忽略GC暂停的延迟峰值,则测量中值延迟时间,因为这对于远程峰值延迟时间不敏感。如果你想要计算峰值,那么计算自峰值将拉高平均值以来的平均延迟时间。