java - 即使在 NoHostAvailableException 之后创建的文档
问题描述
我正在尝试与 Java 的 ExecutorService 并行执行多个 BatchSatements。我想知道我的查询是否成功执行。
我经历过: 如何在 Cassandra Datastax 中查看更新查询是否成功
它是说,如果没有例外,我们可以认为它是成功的。但我得到了 NoHostAvailableException。
All host(s) tried for query failed (tried: *********************(com.datastax.driver.core.exceptions.OperationTimedOutException: [******************] Timed out waiting for server response))
但我可以在 Cassandra 中看到我的数据。我想知道如何知道我的文档是否在 Cassandra 中成功创建。有什么办法吗?
解决方案
与关系数据库相比,Cassandra 中的批次不同。并且它们应该只在有限数量的用例中使用,并且它们不应该用于批量插入/更新到多个分区,直到确实有必要(请参阅“ misuse of batches ”文档)。
批处理最终将被重播,即使您将错误返回给驱动程序 - 这是因为批处理在执行之前被复制到其他节点。详情见下图。
推荐阅读
- r - 如何使用 cmprsk 包获得科学的 p 值?
- sql - SQL:将时间戳与仅时间参数相匹配,以对多天的唯一时间进行分组和计数
- economics - 如何在 oTree 中将自己指定为玩家 2?
- xml - 自动将 XML 解析为 Logstash
- oracle12c - 无法在 Oracle Data Integrator 中获得正确电子邮件地址的通知
- c# - c# elasticsearch 未知聚合类型 [multi_terms] 你的意思是 [rare_terms] 吗?
- java - org.apache.commons.cli CommandLineParser 没有保留传递的参数
- sql - 有没有办法在 SAS IF/THEN/DO 函数中嵌套 sql 语句?
- apache-camel - Apache Camel:多路由与多端点
- string - 数字格式 CultureInfo 自定义与 TryParse