cassandra - 假设我将一条记录写入 cassandra 集群,并立即读取它。cassandra如何保证我读到的就是我刚刚写的最新结果?
问题描述
假设我将一条记录写入 cassandra 集群,并立即读取它。可能是写的过程还没有完成。cassandra怎么保证我读到的是我刚刚写的最新结果呢?
解决方案
Cassandra 具有可调整的一致性。由您决定需要多少一致性 - 始终以可用性为代价。
如果您的写入根本没有得到确认,您根本无法保证,但您可能会取回数据。
您可以使用 ConsistencyLevel.ALL 强制 Cassandra 强制所有持有该分区键的节点确认您的写入并强制所有节点在读取时发送数据。这会很慢,您可能最好使用 RDBMS。
一个好的中间方法是 ConsistencyLevel.QUROUM。
https://docs.datastax.com/en/cassandra/3.0/cassandra/dml/dmlConfigConsistency.html
推荐阅读
- node.js - StompJS:一段时间后随机重新连接循环
- html - 除了在每行 css 之后使用 !importand 之外,还有其他方法可以解决此问题吗
- sql - LIMIT 在查询中更改排序顺序
- reactjs - 我在 React 中有一个模态,它在首次渲染应用程序时显示
- elasticsearch - 如何配置 Filebeat 读取日志文件,使用 ELK 堆栈?
- python - 优化循环序列
- node.js - 为什么我的第一个 AWS RDS 查询比使用 Sequelize 的其他查询花费的时间更长?
- mosquitto - 确定 mosquitto 的版本
- delphi - Delphi SmardCard 从十六进制字符串到字符串的响应
- html - 尽管位置固定,侧边栏仍在向上滚动