中国卓越技术团队访谈录读者调查,2022年采访嘉宾由你决定! 了解详情
写点什么

Google Cloud Platform 提倡在数据存储中使用强一致性

  • 2018 年 2 月 07 日
  • 本文字数:844 字

    阅读完需:约 3 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

在创建应用平台中,为降低复杂性并减少潜在的软件缺陷,一开始就应以实现数据层中的强一致性为基础。这一前提是Mike Curtiss 最近在Google Cloud Platform 博客上发表的一篇博文中提出的。按Curtiss 的论述:“换句话说,将数据集整体置于缺省提供事务和一致性的数据存储中,会导致错误更少、麻烦更小,并且应用代码也更易于维护。”

在大量的系统中,必须要处理并发数据访问。任何工作于其中的开发人员,对Curtiss 所描述的场景都不会陌生。两个银行账户之间转账,就是一个需要外部一致性的教科书式范例。但是,如果要在应用逻辑中解决这种一致性,可能会导致错误、额外的复杂性,以及其它一些意想不到的复杂性。相比较而言,如果使用了缺省提供外部一致性的数据存储,那么就可以简化应用逻辑。这将使系统更强大,并提高了开发团队的生产力。

Google Cloud Spanner 就是一种以构建强一致性为基础功能的的关系数据库服务。在 Spanner 中,组合了水平可扩展性和强一致性。这引发了一种看法,认为 Spanner违反了CAP 定理

在博客文章中,很好地比较了各种数据存储所使用的一致性级别。Curtiss 也尝试去挑战一些常见假设,例如是否外部一致性会对性能产生不合理的严重影响。但是,鉴于Spanner 全面提供强一致性读,避免了开发人员碰上使用其它大多数数据存储中习以为常的一些限制。

虽然这篇博文意在推销Spanner 的能力,但文中也提供了一些通用的使用指导。首先,应尽可能使用强一致性读。在强一致性读操作不可用的情况下,只要确认妥协(compromises),可以退而求其次使用有限过期(Bounded staleness)一致性读。按理说,强一致性写要比强一致性读更重要。如果系统没有提供强一致性写,那么应用开发人员会承受额外的负担,并且可能会引入数据不一致。

此外,Google Clound Platform 为 Cloud Spanner 外部一致性提供了更多信息。

查看英文原文: Google Cloud Platform Recommends Strong Consistency in Data Stores

2018 年 2 月 07 日 18:001078
用户头像

发布了 386 篇内容, 共 103.6 次阅读, 收获喜欢 240 次。

关注

评论

发布
暂无评论
发现更多内容

北京疫情反弹 区块链怎样破解食品溯源难题?

CECBC

区块链技术 商品溯源 上链

区块链在农业领域能有什么用武之地?

CECBC

区块链技术 上链 农业链 三农

架构师训练营第二周学习总结

子豪sirius

使用接口隔离原则优化 Cache 类的设计

极客李

架构师实现自己架构目标工具手段-软件设计

WulalaOlala

极客大学架构师训练营

重拾依赖倒置原则(训练营第二课)

看山是山

oop 极客大学架构师训练营 依赖倒置原则 DIP

架构师训练营:第二周学习总结

Bruce Xiong

架构师训练营第二周总结

olderwei

第二周作业

李海明

依赖倒置 接口隔离原则

week02 小结

Geek_196d0f

SharePoint 往事之:使用Bootstrap定制SharePoint网站页面

手艺人杨柳

SharePoint

软件设计原理

李海明

专栏

架构师训练营第二周作业(1)

围绕工作的务实学习

第 02 周 开发编程框架 命题作业

Jaye

week02 作业

Geek_196d0f

第二周学习总结

赵龙

架构师训练营第二周作业

子豪sirius

第 2 周 - 课后作业

大海

架构师训练营第二周作业(2)

围绕工作的务实学习

架构师训练营第二周作业

olderwei

极客大学架构师训练营

【架构师训练营】第2周作业

花生无翼

极客大学架构师训练营

Spring中依赖倒置原则的理解

极客李

架构师训练营第二周作业 (3)

围绕工作的务实学习

Flink on Zeppelin (3) - Streaming篇

章剑锋_Jeff

大数据 flink 流计算 Zeppelin

第二周作业

赵龙

OOD设计原则之DIP

无心水

极客大学架构师训练营 面向对象设计原则 OOD SOLID

架构师训练营 - 第二周作业

zcj

极客大学架构师训练营

第 2 周 - 学习总结

大海

极客大学架构师训练营

手撕设计原则:接口隔离

已昏懒人

面向对象 架构师 面向对象设计 面向对象设计原则

架构师训练营第0期第二周作业

无名氏

依赖倒置原则 DIP 依赖反转原则

架构师训练营 Week 02 作业

Wancho

撑起瞬时千亿交易额的云数据库是怎么炼成的?

撑起瞬时千亿交易额的云数据库是怎么炼成的?

Google Cloud Platform提倡在数据存储中使用强一致性-InfoQ