选择合适的数据库服务
1. BASE 数据一致性模型
多年来,ACID 一直被视为数据库领域的准则,但随着大规模项目和实施的出现,一种新的模型应运而生。在很多情况下,ACID 模型过于保守,以牺牲可扩展性和性能为代价来保证安全性。
在大多数 NoSQL 数据库中,并不使用 ACID 模型。这些数据库放宽了一些 ACID 要求,如数据新鲜度、即时一致性和准确性,以获得其他优势,如扩展性、速度和弹性。不过,也有一些使用 ACID 模型的 NoSQL 数据库例外,如基于 .NET 的 RavenDB 数据库,以及在单个 AWS 账户和区域内的 Amazon DynamoDB。
BASE 这个缩写可以分解为:基本可用性(Basic Availability)、软状态(Soft - state)和最终一致性(Eventual consistency),具体含义如下:
- 基本可用性 :数据大部分时间可用(但不一定始终可用)。BASE 模型强调可用性,在写入记录时不保证数据复制的一致性。
- 软状态 :数据库不必保证写入一致性,不同的副本也不必始终相互一致。例如,一个系统将销售数据实时报告到多个目的地,并使用销售数据的多个副本提供容错能力。当有新的销售数据写入系统时,不同的读取者可能会读取到不同版本的销售数据。有些可能是最新数据,而有些可能会滞后几毫秒。但如果读取者稍后再次查询,很可能会得到最新数据。在这样的系统中,不要求数据始终是最新的,这种权衡是可以接受的。
- 最终一致性 :存储的数据最终会达到一致状态,可能要到后续数据被检索时才会体现。 </
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



