单节点cassandra中的重载异常
我通读了这一页:发现单节点cassandra中的重载异常,cassandra,cassandra-3.0,Cassandra,Cassandra 3.0,我通读了这一页:发现Cassandra中的overloadeexception是由于 协调器跟踪当前写入的提示数量,如果数量增加过多,协调器将拒绝写入并抛出OverloadeException异常。 但是我使用单个节点,并且能够频繁地获取重载异常,那么在一致性为1,复制因子为1的单节点中出现重载异常的原因是什么 编辑: JMX中正在进行的提示总数 1) 这是获取重载异常的唯一方法吗? 2) 为什么在单个节点中出现过载异常? 3) 在单个节点中何时调用此checkHintOverload方法
Cassandra
中的overloadeexception
是由于
协调器跟踪当前写入的提示数量,如果数量增加过多,协调器将拒绝写入并抛出OverloadeException异常。
但是我使用单个节点,并且能够频繁地获取重载异常,那么在一致性为1,复制因子为1的单节点中出现重载异常的原因是什么
编辑:
JMX中正在进行的提示总数
1) 这是获取重载异常的唯一方法吗?
2) 为什么在单个节点中出现过载异常?
3) 在单个节点中何时调用此checkHintOverload方法
注意:
1) 我的密钥空间已配置NetworkTopologyStrategy,这是原因吗<代码>使用复制创建键空间测试={'class':'NetworkTopologyStrategy','datacenter_1':'1'}和持久_writes=true代码>
2) hinted_handoff=在cassandra.yaml中启用,我仍然怀疑它是否会触发单节点中的提示,如果是,为什么
3) 一致性级别是此单个节点中的仲裁
这三个参数中的任何一个可能是导致这种情况的原因吗?不,提示是获取该异常的唯一方法。您是否可以检查mbean“org.apache.cassandra.metrics:type=Storage name=TotalHintInProgress”?@SimonFontanaOscarsson它是单个节点,因此不可能有提示?另外,在哪里可以找到“org.apache.cassandra.metrics:type”?\n如果没有其他JMX客户端,可以使用jconsole查看值。因为这是一个单节点,所以不应该有任何提示,但没有其他方法可以做到这一点。@Simonfontanaoscarson我在同一个问题中添加了该图像,您能告诉我您的观察结果吗?在cassandra中还提示了\u切换=已启用。yaml@SimonFontanaOscarsson一致性级别也是此单个节点中的仲裁
I checked in the code :
private static void checkHintOverload(InetAddressAndPort destination)
{
// avoid OOMing due to excess hints. we need to do this check even for "live" nodes, since we can
// still generate hints for those if it's overloaded or simply dead but not yet known-to-be-dead.
// The idea is that if we have over maxHintsInProgress hints in flight, this is probably due to
// a small number of nodes causing problems, so we should avoid shutting down writes completely to
// healthy nodes. Any node with no hintsInProgress is considered healthy.
if (StorageMetrics.totalHintsInProgress.getCount() > maxHintsInProgress
&& (getHintsInProgressFor(destination).get() > 0 && shouldHint(destination)))
{
throw new OverloadedException("Too many in flight hints: " + StorageMetrics.totalHintsInProgress.getCount() +
" destination: " + destination +
" destination hints: " + getHintsInProgressFor(destination).get());
}
}