Google使用什么数据库?

是Oracle仍是MySQL或者他们本身构建的东西? php


#1楼

Google主要使用Bigtable。 html

Bigtable是一个分布式存储系统,用于管理结构化数据,旨在扩展到很是大的规模。 mysql

有关更多信息,请从此处下载文档。 算法

Google还为其部分应用程序使用Oracle和MySQL数据库。 sql

您能够添加的任何其余信息很是感谢。 数据库


#2楼

Spanner是Google全球分布式关系数据库管理系统(RDBMS),是BigTable的继承者。 Google声称它不是一个纯粹的关系系统,由于每一个表都必须有一个主键。 后端

是论文的连接。 缓存

Spanner是Google的可扩展,多版本,全局分布和同步复制的数据库。 它是第一个在全球范围内分发数据并支持外部一致的分布式事务的系统。 本文描述了Spanner的结构,功能集,各类设计决策的基本原理以及暴露时钟不肯定性的新颖时间API。 此API及其实现对于支持外部一致性和各类强大功能相当重要:过去的非阻塞读取,无锁只读事务以及整个Spanner中的原子模式更改。 服务器

Google发明的另外一个数据库是Megastore 。 这是摘要: 网络

Megastore是一种存储系统,旨在知足当今互动在线服务的需求。 Megastore以一种新颖的方式将NoSQL数据存储的可扩展性与传统RDBMS的便利性相结合,并提供强大的一致性保证和高可用性。 咱们在细粒度的数据分区中提供彻底可序列化的ACID语义。 这种分区容许咱们以合理的延迟同步复制广域网中的每次写入,并支持数据中心之间的无缝故障转移。 本文描述了Megastore的语义和复制算法。 它还描述了咱们支持使用Megastore构建的各类Google制做服务的经验。


#3楼

这是他们本身建造的东西 - 它被称为Bigtable。

http://en.wikipedia.org/wiki/BigTable

谷歌在数据库上有一篇论文:

http://research.google.com/archive/bigtable.html


#4楼

Bigtable的

结构化数据的分布式存储系统

Bigtable是一个分布式存储系统(由Google构建),用于管理结构化数据,旨在扩展到很是大的规模:数千个商用服务器上的数PB数据。

Google的许多项目都会在Bigtable中存储数据,包括网络索引,Google地球和Google财经。 这些应用程序对Bigtable提出了很是不一样的要求,包括数据大小(从URL到网页到卫星图像)和延迟要求(从后端批量处理到实时数据服务)。

尽管有这些不一样的需求,但Bigtable已成功为全部这些Google产品提供灵活,高性能的解决方案。

一些功能

  • 快速且极大规模的DBMS
  • 稀疏的,分布式的多维有序映射,共享面向行和面向列的数据库的特征。
  • 旨在扩展到PB级
  • 它适用于数百或数千台机器
  • 能够轻松地向系统添加更多计算机,并自动开始利用这些资源而无需从新配置
  • 每一个表都有多个维度(其中一个是时间字段,容许版本控制)
  • 表格针对GFS(谷歌文件系统)进行了优化,分为多个平板电脑 - 表格的各个部分沿着一行选择,使得平板电脑的大小约为200兆字节。

建筑

BigTable不是关系数据库。 它不支持链接,也不支持相似SQL的丰富查询。 每一个表都是一个多维稀疏映射。 表由行和列组成,每一个单元格都有一个时间戳。 能够存在具备不一样时间戳的单元的多个版本。 时间戳容许执行诸如“选择此网页的n个版本”或“删除超过特定日期/时间的单元格”之类的操做。

为了管理巨大的表,Bigtable在行边界处拆分表并将它们保存为平板电脑。 平板电脑大约200 MB,每台机器能够节省大约100个平板电脑。 此设置容许来自单个表的平板电脑在许多服务器之间传播。 它还容许细粒度的负载平衡。 若是一个表正在接收许多查询,它可能会丢弃其余平板电脑或将忙表移动到另外一台不那么繁忙的计算机上。 此外,若是计算机出现故障,平板电脑可能会分布在许多其余服务器上,所以对任何给定计算机的性能影响都很小。

表存储为不可变的SSTable和日志尾(每台机器一个日志)。 当一台机器耗尽系统内存时,它会使用谷歌专有的压缩技术(BMDiff和Zippy)压缩一些平板电脑。 次要压缩仅涉及少许平板电脑,而主要压缩涉及整个表系统并恢复硬盘空间。

Bigtable平板电脑的位置存储在单元格中。 任何特定平板电脑的查找都由三层系统处理。 客户端指向META0表,其中只有一个表。 META0表记录了许多META1平板电脑,其中包含正在查找的平板电脑的位置。 META0和META1都大量使用预取和缓存来最小化系统中的瓶颈。

履行

BigTable构建于Google文件系统 (GFS)之上,后者用做日志和数据文件的后备存储。 GFS为SSTable提供可靠的存储,SSTable是一种用于保存表数据的Google专有文件格式。

BigTable大量使用的另外一项服务是Chubby ,这是一种高度可用,可靠的分布式锁定服务。 Chubby容许客户端锁定,可能将其与某些元数据相关联,能够经过将保持活动消息发送回Chubby来进行更新。 锁存储在相似文件系统的分层命名结构中。

Bigtable系统中有三种主要的服务器类型

  1. 主服务器:将平板电脑分配给平板电脑服务器,跟踪平板电脑的位置,并根据须要从新分配任务。
  2. 平板电脑服务器:当超过大小限制(一般为100MB - 200MB)时,处理平板电脑和拆分平板电脑的读/写请求。 若是平板电脑服务器出现故障,则每台100台平板电脑服务器将得到1个新平板电脑并恢复系统。
  3. 锁服务器:Chubby分布式锁服务的实例。 BigTable中的大量操做须要获取锁定,包括打开用于写入的平板电脑,确保一次只有一个活动主服务器,以及访问控制检查。

Google研究论文的示例:

替代文字

存储Web页面的示例表的一部分。 行名称是反向URL 。 内容列族包含页面内容 ,锚列族包含引用页面的任何锚点文本 。 CNN的主页由Sports Illustrated和MY-look主页引用,所以该行包含名为anchor:cnnsi.comanchor:my.look.ca 。 每一个锚单元都有一个版本 ; 内容列有三个版本 ,时间戳为t3t5t6

API

BigTable的典型操做是建立和删除表和列系列,写入数据和从行中删除列。 BigTable在API中为应用程序开发人员提供此功能。 行级别支持事务,但不支持多个行键。


如下是研究论文PDF连接

在这里,您能够在华盛顿大学的一个讲座中找到一个显示谷歌杰夫迪恩视频 ,讨论谷歌后端使用的Bigtable内容存储系统。


#5楼

虽然谷歌将BigTable用于他们全部的主要应用程序,但他们也将MySQL用于其余(多是次要的)应用程序。

相关文章
相关标签/搜索