写点什么

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

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

关注

评论

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

CompusBulider (模模搭)学习笔记7:3D场景中第一人称行走

ThingJS数字孪生引擎

3D可视化 数字孪生

大话Java异常

若尘

Java 异常 异常处理 520单身福利

生态“群海”:数字化转型的供需之变

脑极体

如何制定战略?

石云升

创业 战略 职场经验 5月日更

Why WebRTC|前世今生

声网

WebRTC RTC

采用DevOps的7个主要障碍,你一定不知道!

禅道项目管理

DevOps

官方出手,一针见血!Spring Boot官方手册来袭:从入门到实战

Java架构之路

Java 程序员 架构 面试 编程语言

致我的青春我的感情故事

Changing Lin

520单身福利

分库分表 springboot+dubbo+mybatisPlus+shardingSphere

try catch

dubbo 分库分表 springboot ShardingSphere MyBatisPlus

基于 Qt Quick Plugin 快速构建桌面端跨平台组件

网易云信

音视频 qt

作业二:分析微信朋友圈高性能复杂度

刘丽

架构训练营

浅谈前端异常监控平台实现方案

devpoint

异常处理 indexedDB leveldb

5分钟速读之Rust权威指南(五)

wzx

rust

实现私域流量的长效积累,一场医美直播背后的数字营销密码

脑极体

浪潮“分布式云+”行动计划持续深化 三大产品正式发布

云计算

520 属于程序员的诗

荩沫

520单身福利

阿里内部百亿级高并发系统(全彩版小册开源):基础篇、数据库篇、缓存篇、消息队列篇、分布式服务篇、维护篇、实战篇;带你从基础到实战

Java 程序员 架构 高并发

iOS 面试策略之系统框架-并发编程

iOSer

ios 并发编程 系统框架

【干货分享】开放原子超级链动态内核XuperCore核心技术揭秘

百度开发者中心

区块链 超级链

毫秒级的竞技PK | 电信行业需要的5G速度

VoltDB

大数据 数据分析 5G 实时计算

【签约计划】试用期名单公布

InfoQ写作社区官方

签约计划 热门活动

GitHub标星235k!这份阿里P9纯手写的Java并发核心手册堪称无敌了

Java架构之路

Java 程序员 架构 面试 编程语言

520 表白,因一个分号被拒

悟空聊架构

520单身福利

高可用 Keycloak,K8s

Zhang

MySQL k8s keycloak

GraalVM系列(二):GraalVM核心特性实践

孤岛旭日

GraalVM

UCloud一站式智能大数据平台USDP免费版正式发布!

UCloud技术

hadoop CDH

淘宝网能抗住“千亿级”并发量的奥秘是什么?

Java架构师迁哥

包容的回答者

王辉

个人成长 沟通 团队文化 批判性思维 正念

2021金三银四Java岗大厂面试经验总结(附面试真题)

北游学Java

Java 面试

平台化服务的基石(四):再议用户权限,更优雅的模型

孤岛旭日

用户权限 企业建模

3、深潜KafkaProducer核心架构

杨四正

kafka 消息队列 kafka架构 kafka源码分析

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