NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

ABAP 和 Java 的单元测试 Unit Test

Jerry Wang

Java abap 11月日更 JavaSAP

华为云GaussDB NoSQL云原生多模数据库的超融合实践

华为云数据库小助手

GaussDB 华为云数据库 GaussDB NoSQL

Android C++系列:Linux文件IO操作(二)

轻口味

c++ android jni 11月日更

盲盒app开发源码搭建小程序app

AI界的革命!终于可以自动标注了!

百度开发者中心

AI 自动标注工具

45岁程序员发求职贴:精通各种技术体系,却连个面试机会都没有…

Java高级开发

Java 程序员 面试 职场

解决文件存储难题 openGauss隆重推出段页式特性

openGauss

盲盒开发盲盒系统开发定制

盲盒开发盲盒源码搭建系统开发

盲盒app开发小程序源码定制

这个无敌设计,可以解析并运算任意数学表达式

Tom弹架构

Java 架构 设计模式

987页的Java面试宝典,看完才发现,应届生求职也没那么难

热爱java的分享家

Java 架构 面试 程序人生 编程语言

CSS奇技淫巧之滤镜(二)drop-shadow

Augus

CSS 11月日更

从0到10彻底搞懂信息流【投放系统】

水泽山林

系统架构 推荐系统 智能投放 内容平台

Ustore在openGauss闪亮登场,重构openGauss数据存储的灵魂

openGauss

自定义View:ViewGroup与View的事件传递

Changing Lin

11月日更

使用 Node.js 消费SAP Cloud for Customer上的Web service

Jerry Wang

node.js SAP C4C 11月日更

关于openGauss账本数据库:你想知道的这里都有

openGauss

“太白”团队加入OpenInfra Labs,联合社区成员共同完善多云管理技术

一网打尽!音乐高手都在使用的打谱软件不藏私推荐!

懒得勤快

盲盒一番赏APP开发源码搭建

dart系列之:元世界pubspec.yaml文件详解

程序那些事

flutter dart 程序那些事 11月日更

如何用EasyRecovery恢复中毒U盘中丢失的文件

淋雨

EasyRecovery

为何飞书成了先进企业的标配?

ToB行业头条

SOLID原则之 单一职责原则

面向对象的猫

SOLID

我就获取个时间,机器就down了

安第斯智能云

Linux 后端

盲盒app开发盲盒小程序开发

盲盒开发蛋趣芒趣一番赏源码搭建

Hadoop实战篇-集群版(2)

进击的梦清

大数据 hadoop zookeeper

Python代码阅读(第59篇):根据value查询字典key值

Felix

Python 编程 阅读代码 字典 Python初学者

盲盒开发盲盒小程序源码搭建app

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