硬核干货——《中小企业 AI 实战指南》免费下载! 了解详情
写点什么

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:001878
用户头像

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

关注

评论

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

推进行业生态发展完善,中国信通院第八批RPA评测工作正式启动

王吉伟频道

RPA 机器人流程自动化 中国信通院 RPA评测 RPA产业推进方阵

Java 中如何限制方法的返回时间

HoneyMoose

架构实战营模块5 高性能高可用计算作业

西山薄凉

「架构实战营」

C# 如何部分加载“超大”解决方案中的部分项目

newbe36524

C# Docker Kubernetes

数据同步gossip协议原理与应用场景介绍

京东科技开发者

架构 Consul fabric Gossip协议 企业号 2 月 PK 榜

基于Verilog HDL的状态机描述方法

timerring

FPGA

银行零售如何更贴近客户?是时候升级你的客户旅程平台了

Kyligence

数据分析 客户旅程

IntelliJ IDEA 修改只读模式和可写模式

HoneyMoose

从 JDK 9 到 19,我们帮您提炼了和云原生场景有关的能力列表(上)

阿里巴巴云原生

阿里云 云原生

2022阿里云技术年报:基础产品篇

阿里巴巴云原生

阿里云 云原生 基础产品

架构训练营模块七作业

张建闯

架构实战营

Java高手速成 | Hibernate的配置文件与JPA API的基本用法

TiAmo

hibernate jpa api 网关

Higress + Nacos 微服务网关最佳实践

阿里巴巴云原生

阿里云 云原生 nacos Higress

试试 IntelliJ IDEA 新的 UI

HoneyMoose

IntelliJ IDEA 撤销和反撤销

HoneyMoose

OpenMMLab图像分类实战代码演示

IT蜗壳-Tango

CV OpenMMLab 图片分类

vue实现一个鼠标滑动预览视频封面组件(精灵图版本)

JYeontu

Vue 视频

基于SLO告警(Part 4):开源项目 pyrra 使用

Grafana 爱好者

云原生 可观测性 Prometheus SRE SLO

10 亿月活用户下,快手基于 Dragonfly 的超大规模镜像分发实践

阿里巴巴云原生

阿里云 容器 云原生

架构训练营模块8

张建闯

架构实战营

全景剖析阿里云容器网络数据链路(五):Terway ENI-Trunking

阿里巴巴云原生

阿里云 容器 云原生

应用纳管和灰度发布:谐云基于 KubeVela 的企业级云原生实践

阿里巴巴云原生

阿里云 容器 云原生 KubeVela

设计「业务」与「技术」方案

Java 架构 技术 业务

Flomesh Ingress 使用实践(四)TLS 透传

Flomesh

Kubernetes 服务网格 ingress Pipy 流量管理

万里数据库加入龙蜥社区,打造基于“龙蜥+GreatSQL”的开源技术底座

OpenAnolis小助手

开源 龙蜥社区 greatsql社区 万里数据库 生态适配

突破边界:“超融合+”带来的商业化精益之路

脑极体

核心应用实现云原生改造升级,波司登数字化战略加速落地

阿里巴巴云原生

阿里云 云原生

重磅发布丨《云原生实战指南》助力企业上云实践!

阿里巴巴云原生

阿里云 云原生实战

技术服务深耕本地市场:阿里云在日本的探索与实践|国家经理专栏

阿里巴巴云原生

阿里云 云原生

图片竟能直接生成逼真音效?这AI模型也太神奇了吧!

科技热闻

C++ 友元与运算符重载那些事

王玉川

c++ 编程语言 运算符 重载 friend

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