插入失败,节点上的持久写入失败

Posted

技术标签:

【中文标题】插入失败,节点上的持久写入失败【英文标题】:insert fails with Durable Writes on Node down 【发布时间】:2015-08-11 11:27:18 【问题描述】:

我有 2 个节点集群,replication='class' : 'NetworktopologyStrategy','DC':'1' AND persistent_writes=true;

,当其中一个节点关闭时,我的插入失败。

一致性级别为 1。

【问题讨论】:

您是否从 cqlsh 调用插入?粘贴插入中的跟踪。 从 id=1 的股票中选择 *;回溯(最后一次调用):文件“C:\apache-cassandra-2.1.8-bin\apache-cassandra-2.1.8\bin\\cqlsh”,第 1078 行,在 perform_simple_statement rows = self.session.execute(声明,trace=self.tracing_enabled)文件“C:\apache-cassandra-2.1.8-bin\apache-cassandra-2.1.8\bin\..\lib\cassandra-driver-internal-only-2.6.0c2. post.zip\cassandra-driver-2.6.0c2.post\cassandra\cluster.py",第 1594 行,在执行结果 = future.result(timeout) 文件 "C:\apache-cassandra-2.1.8-bin\apache-cassandra-2.1.8\bin\..\lib\cassandra-driver-internal-only-2.6.0c2. post.zip\cassandra-driver-2.6.0c2.post\cassandra\cluster.py”,第 3296 行,结果引发 self._final_exception 不可用:代码 = 1000 [不可用异常] 消息 =“无法达到一致性级别 ONE”信息 = 'required_replicas': 1, 'alive_replicas': 0, '一致性': 'ONE' 【参考方案1】:

要让一个节点宕机的所有插入成功,您需要使用复制因子 2。当您仅使用复制因子 1 时,插入可能会散列到宕机节点,因此无法完成写。

如果您的复制因子为 2,并且执行一致性为 ONE 的写入,则它可以写入仍在运行的节点。

或者,如果您打开提示切换并以 ANY 的一致性级别写入,那么您可以使用 1 的复制因子并且插入仍然会成功,但写入会延迟,直到关闭节点恢复。

【讨论】:

谢谢 Jim,keyspace 表大约 65 GB(10 个表),更改 RF 将需要 Nodetool 修复,最终将运行每个范围的修复,有没有办法计算出多少时间维修可能需要。 如果你运行“nodetool compactionstats”,我想它会告诉你有多少任务等待修复。您也许可以通过监控来估计剩余时间。

以上是关于插入失败,节点上的持久写入失败的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery 流式插入在 GKE 上失败

当所有数据节点在hadoop中失败时会发生啥?

新远程节点上的 Rundeck 身份验证失败

即使节点处于禁用状态,Fabric 集群中节点上的 RemoveNodeStateAsync() 也会失败。

MutationObserver 上的 Angular 指令单元测试失败:参数 1 不是“节点”类型

Azure 中托管的节点服务器上的 Websocket 失败