数据库与缓存系统的优化与扩展:Aurora与Facebook Memcache的实践
1. Aurora数据库的关键技术
Aurora通过一些简单的技术避免了复杂、脆弱且昂贵的共识协议,从而减少了大量的网络、存储和数据库处理工作。
1.1 纪元(Epochs)的应用
- 错误与修复处理 :转换只需要对保护组的写入法定人数进行单纪元更新,陈旧状态的更新也很简单,只需在被拒绝的请求之后再发送一个额外请求。
- 卷增长管理 :使用卷几何纪元来管理卷的增长,随着每个保护组添加到卷中,纪元会递增。这也可用于更改法定人数模型,例如从4/6写入法定人数转变为3/4以应对可用区(AZ)的扩展损失。
1.2 法定人数集(Quorum Sets)降低成本
- 保护组结构 :一个保护组由三个完整段和三个尾段组成。完整段存储重做日志记录和物化数据块,尾段仅包含重做日志记录。这种结构使得成本放大接近数据的三份副本,而非完整的六份,同时满足支持AZ + 1故障的要求。
- 读写集构造 :写入法定人数为任何段的4/6或完整段的3/3,读取法定人数为任何段的3/6且完整段的1/3。实际操作中,日志记录写入与之前相同的4/6法定人数,至少有一个日志记录到达完整段并生成数据块,数据从完整段读取。
- 段修复 :修复尾段只需从保护组的其他成员读取数据,使用SCL确定并填充来自SCL高于自身的
超级会员免费看
订阅专栏 解锁全文
12

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



