Cosmos DB如何为强一致性账户保障与最终一致性相近的可用性?
Cosmos DB强一致性多区域部署的CAP定理适配逻辑
Cosmos DB文档显示,将强一致性配置的Cosmos DB账户部署到3个及以上区域时,可获得与最终一致性相近的可用性(符合对应服务等级协议)。
但结合CAP定理来看,这一机制该如何实现?我们可以用3区域部署的场景来分析:假设网络分区出现,1个只读区域被隔离,与另外两个区域(1个写入区域、1个只读区域)断开连接。此时写入请求抵达写入区域时,有两种处理选项:
- 直接拒绝请求
- 将写入操作提交至写入区域及当前可达的只读区域,无法触达分区外的那个区域
如果Cosmos DB选择第二种方案,当只读请求进入被隔离的那个区域时,由于Cosmos DB采用本地仲裁机制,会返回过期数据,这就违反了它承诺的强一致性要求。
因此,Cosmos DB在遭遇这类网络分区情况时,必须拒绝写入请求。
内容的提问来源于stack exchange,提问作者hpatel
相关产品推荐
相关产品推荐

