写点什么

Google 发布面向 App Engine 的 High Replication Datastore

  • 2011-01-15
  • 本文字数:1162 字

    阅读完需:约 4 分钟

分布式、可伸缩及高可靠的数据存储将成为业界的下一个圣杯。在发布 Google App Engine Datastore 两年后,Google 开始直面这个问题。其 Master/Slave 复制架构的设计意图在于支持“快速、一致的读需求”,同时还支持快速的写需求。但 Google 需要重新审视这个问题

你可能注意到了,我们过去半年一直在与 App Engine Datastore 的某些可靠性问题进行着斗争。在过去的几个月中,我们取得了长足的进步。然而,解决这些问题所积累的经验使我们认识到需要重新考虑一下设计假定了。

上周,Google 发布了“High Replication Datastore”以为读和写提供更高层次的可用性。但这也是有代价的,那就是增加了写延迟,同时 API 中的一致性保证也发生了变化。

High Replication Datastore 使用 Paxos 算法来实时同步跨越多个数据中心的数据,进而增加了用于维护数据复制的数据中心数量。这么做最大的好处在于计划的维护周期内,应用的所有功能都保持完全的可用性,对于大多数意外的基础设施问题也一样。

Google 警告开发者:

由于是分布式数据库,正如 CAP(Consistency,一致性;Availability,可用性;Partition tolerance,分区容错性)所示,开发者需要非常小心地对应用进行架构,因为随着成本的增加、可靠性的增强以及复杂性的增加,性能不可避免地会降低。

为了帮助开发者将现有的应用数据迁移到 High Replication Datastore 上,Google 提供了一些迁移工具。由于复制量的增加,Google 还将价格提高了 1/3。

Todd Hoff 称之为“向完全的分布式未来迈进的一大步”

HRD 的目标是需要将数据复制到至少 3 个数据中心的、需要完整的 ACID 语义、高一致性保证的任务关键性应用。

Google 新的数据存储定义了一种介于 RDBMS 抽象元组和 NoSQL 具体的行列存储之间的一种数据模型。在 RDBMS 中,数据模型声明在 Schema 中并且是强类型的。每个 Schema 都有一个表集合,每张表包含一个实体集合,每个实体包含了一个属性集合。属性具有名称,其值具有相应的类型。

Bigtable 可以在相同的行 / 列对中存储多个值,只不过时间戳不同。该特性实现了多版本并发控制(MVCC):当使用了事务时,在写入值时需要带上其事务的时间戳。在读取时会使用上一次事务的完整时间戳以避免部分更新的情况出现。

平均的读延迟在 10 毫秒左右,具体时间取决于数据量,这表明大部分读都是本地的;平均的写延迟在 100——400 毫秒左右,具体时间取决于数据中心之间的距离、写入的数据大小以及完整复制的数量等因素。

曾经只被大公司用于构建任务关键性应用的“大基础设施”现在也充分利用了长尾理论,可以构建创新型应用了,这在几年前是无法想象的事情。你打算使用 Google App Engine 么?自己的解决方案中需要这样的数据存储么?这种基础设施给你带来的最大好处是什么呢?

查看英文原文: Google Releases the High Replication Datastore for App Engine

2011-01-15 22:163634
用户头像

发布了 88 篇内容, 共 265.3 次阅读, 收获喜欢 8 次。

关注

评论

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

GitHub上下载量突破100000+阿里巴巴的这份开源项目如此牛逼

阿里巴巴 开源 编程 Java 25 周年

Docgeni,开箱即用的 Angular 组件文档工具

PingCode研发中心

开源 研发工具

5.29 相约杭州!云原生 Meetup 第二期杭州站报名开启!

青云技术社区

云原生

直播点播窄带高清之 JND 感知编码技术

网易云信

音视频 视频编码

如何入门数据分析?

数据社

大数据 数据分析 5月日更

阿里云黄博远:AI工程化是发挥算法及数据价值的效能中枢

阿里云大数据AI技术

用 Java 实现坦克大战,这个有点强了!

Java架构师迁哥

AI医疗发展中的机遇与有效监管

CECBC

硬核出击,只为守护你的秘密!

亚马逊云科技 (Amazon Web Services)

打破固有思维(十九)

Changing Lin

膜拜!多次霸榜Github的springboot 实战派文档到底有多强?

Java 程序员 架构 面试

PingCode 3.0 发布,开启国产研发自动化时代

爱吃小舅的鱼

敏捷开发 研发管理 开发 研发工具 项目经理

Flutter 混合开发基础

网易云信

flutter 框架

中台反思:云原生下API网关的选择

孤岛旭日

网关 api 网关 平台 技术中台

工业绿色发展可视化管理——高炉炼铁厂可视化系统

一只数据鲸鱼

数据可视化 工业物联网 智慧工厂 三维可视化 高炉炼铁

团队项目进度跟踪难?延期风险高?国内企服排行榜第一的通用项目管理工具在这里了

爱吃小舅的鱼

进度条 PMP Certification 项目经理 项目管理工具

Python3 Note 浮点类型误差问题

awen

Python 浮点型 decimal

FIL矿池挖矿算力分发系统开发搭建

薇電13242772558

数字货币 算力

原来,GitHub标星90K+的Leetcode刷题手册长这样

Java架构师迁哥

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

wzx

rust

打造生态“朋友圈”,英特尔以生态之道培育AI创新“大气候”

E科讯

SUSECON 2021首日重点新闻:SLES 15 SP3和SUSE Rancher 2.6全新发布

Rancher

Python3 Note 如何合理使用assert

awen

Python assert

极狐GitLab 13.11功能回顾,含Kubernetes Agent和流水线合规性

极狐GitLab

系统运维 安全监控审计 #on-call #GitLab 极狐GitLabs

Flink的流数据SQL

五分钟学大数据

flink 5月日更

Redis不是一直号称单线程效率也很高吗,为什么又采用多线程了?

Linux服务器开发

redis 后端 多线程 Linux服务器开发 网络io

hive的DDL语法基本操作

大数据技术指南

hive 5月日更

看德威学校如何通过亚马逊云科技开启青少年AI探索之旅

亚马逊云科技 (Amazon Web Services)

太为难我了,阿里面试了7轮(5年经验,拿下P7岗offer)

Java 程序员 架构 面试

5G加油站,需要中频段

脑极体

helm-kubernetes的包管理器

片风

云原生 Helm 包管理工具

Google发布面向App Engine的High Replication Datastore_架构_Jean-Jacques Dubray_InfoQ精选文章