11、云数据存储:文档存储全解析

云数据存储:文档存储全解析

1. 复合索引与查询性能

在数据查询中,有一种索引涉及两个属性,我们称之为复合索引。它需要用户自行定义,若没有这种索引,某些查询将无法运行,这与关系型数据库不同,关系型数据库即使没有索引,查询也能运行,只是速度可能较慢。

当数据发生变化时,索引的更新会影响查询性能。例如,更新电子邮件的属性时,所有复制该数据的索引也需要更新,这就引出了数据一致性的问题。

2. 一致性与复制

像 Gmail 这样的分布式存储系统,需要满足两个关键要求:始终可用和随结果集扩展。这意味着不仅要复制数据,还要为查询创建和维护索引。

云数据存储采用了一种名为两阶段提交的协议进行数据复制。该过程分为两个阶段:
- 准备阶段 :向一组副本发送请求,描述更改并要求副本做好应用更改的准备。
- 提交阶段 :在所有副本确认已准备好更改后,发送第二个请求,指示所有副本应用更改。在数据存储中,这个提交阶段是异步进行的,某些更改可能会处于已准备但尚未应用的状态。

这种安排导致在运行广泛查询时出现最终一致性,即实体或索引条目可能过时。而强一致性查询(如获取单个实体)会先促使副本执行所有待处理的资源提交,然后再运行查询,从而得到强一致性的结果。

在分布式系统中维护实体和索引是一项复杂的任务,因为保存操作还需要更新受影响的所有索引,并且这些索引需要在多个地方进行复制和更新。

数据存储有两种更新选项:
- 同步更新 :同步更新实体和所有索引,但确认操作所需时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值