加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 服务器 > 安全 > 正文

从分布式到云端服务:Google Spanner 成长之路

发布时间:2021-01-21 04:03:03 所属栏目:安全 来源:网络整理
导读:《从分布式到云端服务:Google Spanner 成长之路》要点: 本文介绍了从分布式到云端服务:Google Spanner 成长之路,希望对您有用。如果有疑问,可以联系我们。 摘要:距离 Google 开始开发 Spanner 已经 10 年,5 年前 Google 发表了论文,在 Google 云平台上

Spanner 的最早的客户是 F1,它是一个 Google 广告系统的后台程序.F1 在美国境内一共有 5 个副本.许多其他的应用程序最有可能的是在一个地理区间内在 3 到 5 个数据中心中间复制数据,但是它们具有相对独立的失效模式(failure mode).也就是说,大多数应用程序会首选较低延迟,只要能够挺过 1 到 2 次的数据中心故障.

Google F1 SQL 数据库管理系统构建在 Spanner 之上,用于替换 Google 的 MySQL 定制版本.Spanner 使用 Paxos 算法作为操作的一部分,用于在数百个数据中心之间共享数据.

技术总结

Spanner 提供了类似于关系型数据库的功能支持和操作方式,每张表都有主键、可以管理和删除级联表的数据.Spanner 支持 ACID 和 SQL 语句.由于 Spanner 会把上亿条数据存放在全球很多数据中心里,所以当你读取数据时,Spanner 把读取请求发到物理上最接近你的数据中心,当你写入数据时,你会存储到多个数据中心.如果数据中心整体停止服务,你也可以从副本数据中心环境读取数据.

Spanner 并不开源,但是有开源实现 CockroachDB,源码请访问 https://github.com/cockroachdb/cockroach.

发布 Cloud Spanner 测试版本

2017 年 2 月 14 日(情人节),Google 宣布 Cloud Spanner 发布测试版本.这是一个基于云端的全球分布式关系数据库服务,支持包括 ACID 交易、SQL 语义,支持水平扩展和高可用性.当我们构建一个基于云端的应用程序时,数据库管理员和开发人员都需要去选择使用关系型数据库或者 NoSQL 数据库,关系型数据确保交易持久性,NoSQL 数据库提供了简单、水平扩展和数据分布式.Cloud Spanner 打破了这种非此即彼的选择方案,提供了集两个关键能力与一体的,完全管理的服务.

Cloud Spanner 与 Google 颇有渊源,早在 2012 年的一份文件中 Google 就记录了 Cloud Spanner,并且已在内部使用多年.目前谷歌的云数据库服务阵营包括 Google Bigtable(谷歌 2015 年发布的一个全面管理、高性能、可扩展的 NoSQL 数据库服务)、Google Container Engine(谷歌为解决企业管理大量容器技术编排的繁琐工作而推出的容器管理服务) 等.

Google 产品经理 Deepti Srivastava 曾在一篇博文中写道:

Cloud Spanner 通过在熟悉的关系数据库环境中支持标准工具和语言,简化了应用程序开发.它是传统关系数据库支持运行的工作负载的理想选择,如库存管理,金融交易和控制系统以及其它系统.

Cloud Spanner 同 GCP、Cloud SQL、Cloud Datastore、Cloud Bigtable 一起,丰富了我们数据库服务的能力.

作为一个可控的服务,Cloud Spanner 给 DBA 提供了下列重要福利:

  1. 让 DBA 把宝贵的精力专注于业务逻辑上,而不是用于处理各种软件或硬件问题;
  2. 使得 DBA 不用执行复杂的分片或者集群操作,就可以实现对 RDBMS 解决方案的扩展;
  3. DBA 不用把关系数据库迁移到 NoSQL 数据中,也能获得数据的水平扩展能力;
  4. DBA 无需复杂的数据备份或失效援备机制,即可维护数据的高可用性,以及具备对数据的灾备恢复能力;
  5. 将安全性与数据层加密,身份验证,接入管理,日志审核等功能进行整合.

Cloud Spanner 并没有违反 CAP 定理.这些年,我们已经让 Spanner 打赢了 Google 内部很多场战斗,数百个不同的应用程序,PB 级别的数据在全球的数据中心间转移.在 Google,Spanner 支持每秒数以百万计次的查询,运行的应用程序包括 AdWords 和 Google Play.

有了 Cloud Spanner,你可以对数据库的规模按照需求来扩展和缩小,然后你只需要按照使用规模来付费即可.Spanner Cloud 的特色之一就是提供了一个简洁的收费模式,可通过计算节点使用的小时数,实际存储消耗(而不是预估存储消耗)以及外部网络接入等指标来计算费用.

Cloud Spanner 力图保持应用开发的简洁性,支持开发者们熟知的关系数据库环境、工具和语言.因此它对那些通过传统关系数据库来的驱动的应用作业(如装备管理,金融事务,控制系统,以及那些规模快速增长的系统)是非常理想的.Cloud Spanner 同时还数据线了分布式事务,Scheme 和 DDL 声明,SQL 查询和 JDBC 驱动等功能,并且支持多种主流语言,如 Java,Go,Python,Node.js 等.

Google Cloud Platform 也将继续完善 Google Cloud SQL 服务以及 Google Cloud Datastore.与此同时,AWS 和 Microsoft 也并未放慢在云领域的脚步.AWS 提供与 MySQL 兼容的 Aurora 关系数据库以及关系数据库服务 (RDS),而 Microsoft Azure 在虚拟机 (VM) 上提供 Azure SQL 数据库以及 SQL Server.

全文总结

简而言之,距离 Google 开始开发 Spanner 已经 10 年,即不能解决大规模集群下高可用性、水平扩展能力、数据强一致性等.Cloud Spanner 在做到兼顾优势的同时,并没有违反 CAP 理论.这也就是为什么 Spanner 在云端开放服务的消息成为了一个冲击性的新闻,让我们拭目以待 Google 的极客精神.

相关技术名词解释

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读