Cosmos NoSQL单逻辑分区内Patch计数器增量更新是否ACID合规?
Cosmos NoSQL单分区计数器Patch增量操作的特性说明
ACID合规性
单逻辑分区内的Patch增量操作完全符合ACID规范:
- 原子性:Patch操作是原子执行的,要么完整完成version的增量更新,要么完全不生效,不会出现部分更新的中间状态。
- 一致性:操作执行前后,数据始终符合预设结构,单分区内的强一致性保证操作后读取到的是最新值。
- 隔离性:同一分区内的并发Patch操作会被服务器串行化处理,彼此完全隔离,不会互相干扰。
- 持久性:操作成功提交后,更新会被持久化,不会因系统故障丢失。
并行操作的冲突与执行逻辑
多台应用服务器并行发起不带Etag的Patch增量操作时:
- 不会出现冲突错误,Cosmos DB会自动对同一逻辑分区内的并发写操作进行串行化调度,每个增量操作都会基于当前最新的version值执行,不存在「读取-修改-写入」模式下的丢失更新问题。
最终值的确定性
若初始version值为4,n台服务器并行执行patch(increment by 1)操作(RU/s充足):
- 最终version值一定为
4+n,且不会出现任何冲突异常。每个增量操作都会被完整应用,服务器端的串行化处理确保所有操作的效果累加。
内容的提问来源于stack exchange,提问作者Satyam Garg
相关产品推荐
相关产品推荐

