谷歌云平台提倡在数据存储中使用强一致性
极客时间编辑部
讲述:丁婵大小:1.03M时长:02:16
最近,迈克·寇蒂斯(Mike Curtiss)在谷歌云平台(Google Cloud Platform)博客上发表的一篇博文中提出,在创建应用平台时,为降低复杂性并减少潜在的软件缺陷,一开始就应该以实现数据层中的强一致性为基础。
按照寇蒂斯的论述,将数据集整体置于缺省提供事务和一致性的数据存储中,能让错误更少、麻烦更小,并且应用代码也更易于维护。
在大量的系统中,处理并发数据访问是必须的。任何工作于其中的开发人员,对寇蒂斯所描述的场景都不会陌生,两个银行账户之间转账,就是一个需要外部一致性的教科书式范例。但是,如果要在应用逻辑中解决这种一致性,可能会导致错误和额外的复杂性,以及其它一些意想不到的复杂性。
相比较而言,如果使用了缺省提供外部一致性的数据存储,那么就可以简化应用逻辑。这将使系统更强大,并提高了开发团队的生产力。
Google Cloud Spanner 就是一种以构建强一致性为基础功能的关系数据库服务,其中组合了水平可扩展性和强一致性。这引发了一种看法,那就是认为 Spanner 违反了 CAP 定理。
寇蒂斯的文章中还很好地比较了各种数据存储所使用的一致性级别,他也尝试去挑战一些常见假设,例如是否外部一致性会对性能产生不合理的严重影响。但是,鉴于 Spanner 全面提供强一致性读,这避免了开发人员碰上使用其它大部分数据存储中习以为常的一些限制。
另外,文中也提供了一些通用的使用指导。首先,应尽可能使用强一致性读。在强一致性读操作不可用的情况下,只要确认妥协(compromises),就可以退而求其次使用有限过期(Bounded staleness)一致性读。
另外,强一致性写要比强一致性读更重要,如果系统没有提供强一致性写,那么应用开发人员就会承受额外的负担,并且可能会引入数据不一致。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论