use*_*415 3 eventual-consistency cassandra nosql
当并发写入发生时,Cassandra如何保证最终的一致性?
例如,客户端A写入tableA.rowA.colA,同时客户端B写入tableA.rowA.colA.
协调器节点将请求分发给副本节点,例如NodeA NodeB和NodeC.
在NodeA上,ClientA请求首先到达.在NodeB上,ClientB请求首先到达.那么,它会永远不一致吗?
卡桑德拉遵循"最后写赢"政策.使用的时间戳可以手动设置,但默认情况下由请求者设置客户端,请参阅Datastax Java Driver docs.写入的顺序无关紧要.如果写入A具有比写入B更早的时间戳,那么它将始终被写入B覆盖.唯一不明确的情况是时间戳完全匹配.在这种情况下,更大的价值获胜.
最终一致的部分是:
大多数用例涉及不在Cassandra中存储状态,因此不会出现这些问题.
| 归档时间: |
|
| 查看次数: |
1742 次 |
| 最近记录: |