文档存储即服务(DSaaS)的数据一致性特性:以MongoDB Atlas为例
1. 引言
近年来,各种文档存储即服务(DSaaS)系统变得非常流行。它们为开发者提供了易于扩展和按需付费的选择,适合在公共云环境中使用文档存储进行数据管理。DSaaS有两个特点:
- 是文档存储,支持基于分层文档的半结构化数据模型,常用JSON和XML表示,对Web应用开发很有用。
- 作为服务托管,数据管理不由数据所属组织负责。
如今,云用户若想使用文档存储,有多种选择,如微软Azure DocumentDB等云提供商的集成服务,或MongoDB Atlas等第三方服务。
MongoDB Atlas是MongoDB的托管服务,易于设置、操作和在云端扩展。和许多NoSQL存储一样,它允许用户接受副本间可能的临时不一致,以换取分区期间的低延迟和高可用性。本文将对MongoDB Atlas的数据不一致性进行量化研究。
衡量存储一致性的指标是读取到陈旧值(与最新写入值不同)的概率,该概率随上次写入和本次读取的时间间隔而变化。此前在Amazon SimpleDB上,曾观察到长达500ms的时间段内,陈旧概率高达66%。本文将对MongoDB Atlas进行类似测量,并介绍基准测试方法、结果及从中获得的见解。
2. MongoDB Atlas
MongoDB Atlas是MongoDB的托管服务,用户可在有限范围内配置,如云服务平台、服务区域、内存和存储大小、vCPU数量等,对终端用户非常方便。
它采用默认的MongoDB架构,有一个主副本和几个次副本。所有写请求先发送到主副本,然后写入的值再传播到所有次副