2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

  • 2018-02-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-02-07 18:001721
用户头像

发布了 391 篇内容, 共 146.5 次阅读, 收获喜欢 257 次。

关注

评论

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

软件测试/人工智能丨引领未来:软件测试中的人工智能

测试人

人工智能 软件测试

云桌面架构的全面剖析

青椒云云电脑

云桌面 云桌面解决方案 云桌面系统

RTC技术沦陷后,人类或将一夜回到解放前?

X2Rtc

RTC 未来世界 科技趋势

item_search_pro-高级关键字搜索淘宝商品api接口

技术冰糖葫芦

API 文档

Util应用框架基础(七)- Redis 缓存

何镇汐

开源 后端 .net core

这6个复盘模型,你知道几个?让你轻松搞定年终总结

彭宏豪95

个人成长 复盘 年终总结 在线白板 项目复盘

开源流程设计器的对比与选型

小狗围观科幻

文心一言 VS 讯飞星火 VS chatgpt (140)-- 算法导论11.4 5题

福大大架构师每日一题

福大大架构师每日一题

Util应用框架基础(七)- 缓存

何镇汐

开源 后端 .net core

影视行业如何远程完整快速传输大文件?

镭速

传输大文件

杜绝硬编码,为系统安全保驾护航

尚思卓越

网络安全 硬编码 内嵌账号

Java多线程消费消息

不在线第一只蜗牛

Java 多线程 RocketM

JNPF开发平台凭什么火?

互联网工科生

低代码 JNPF

最新demo版|如何0-1开发支付宝小程序之如何调试小程序(二)

盐焗代码虾

支付宝小程序 小程序调试 如何调试

Util应用框架基础(七)- API

何镇汐

开源 后端 .net core

软件测试/人工智能丨人工智能会取代软件测试工程师吗

测试人

人工智能 软件测试

原来 TinyVue 组件库跨框架(Vue2、Vue3、React、Solid)是这样实现的?

OpenTiny社区

开源 Vue 前端 React SOLID

从大模型到内容生成,初窥门径的AI新次元

阿里云CloudImagine

云计算 视频云 AIGC

Util应用框架基础(七)- 本地缓存

何镇汐

开源 后端 .net core

Util应用框架基础(七)- 二级缓存

何镇汐

开源 后端 .net core

国内外传输大文件有哪些好用又便宜的文件传输工具?

镭速

传输大文件 文件传输工具 国内外传输大文件

技术分享| anyRTC之RTN网络

anyRTC开发者

音视频 网络 RTC RTN

Util应用框架开发环境搭建(十)- 安装 Redis

何镇汐

开源 后端 .net core

2G内存搞定一亿数据的分析引擎

Western Panda

数据库 大数据 开源 数据分析 OLAP

青椒云云桌面系统_企业上云桌面云服务解决方案

青椒云云电脑

云桌面 云桌面解决方案 云桌面系统

如何理解低代码开发工具?

树上有只程序猿

低代码 应用开发 JNPF

Google Cloud Platform提倡在数据存储中使用强一致性_数据库_Thomas Betts_InfoQ精选文章