cassandra - 将 Cassandra ResultSet 保持打开一段时间的含义
问题描述
我正在使用 Cassandra Java 驱动程序,其获取大小设置为 1k。我需要查询表中的所有记录并为每一行执行一些耗时的操作。如果我将 ResultSet 保持打开(未完全迭代)一天会发生什么?我不关心的:
- 一致性。如果在此期间将写入一些新记录,我可以获取它。但是,如果我不得到它,我很好
- 容错性。如果在此过程中某个节点会失败,那么如果查询也会失败,我很好。但是,我想从客户的角度检测到这一点。
我关心的是:
- Cassandra 资源利用率 - 我不想因为某些资源被阻塞而导致集群中断
- 迟到 - 我不想为该表的其他消费者阻塞(或减慢太多)集群
- 我想获取开始查询时存在的所有记录(假设没有删除)。但是,它们不必是最新的
解决方案
分页状态是关于最后读取数据的信息(字面意思是序列化的分区键、集群和剩余)。当发送给协调器时,它将寻找比这更大的一切。因此,服务器中没有为此花费的资源,并且与正常读取相比没有性能影响。
即使在单个查询中,Cassandra 也没有任何允许隔离的功能。如果数据在第一次查询和第二次查询时发生了变化,您将获得最新信息。
推荐阅读
- c# - 如何将网页 unicode 转换为 ascii?
- angular - 没有将“exportAs”设置为“amgTooltip”的指令
- firebase - 使用 travis 自动部署但未找到构建目录
- css - CSS过滤器的命令行等效项
- javascript - 如何使用自定义元素将子自定义元素包装到 div 中
- python - TensorFlow 2.0 Preview - TypeError: 'Attribute' object is not iterable when using tf.function
- node.js - 如何使用 ajax 发出的请求接收到的内容重新加载页面
- angular - 带有cordova/ionic的响应式Angular App
- reactjs - 无法在 VS Code 中调试 React Typescript
- javascript - JS中的动态网格