是Oracle仍是MySQL或者他们本身构建的东西? php
Google主要使用Bigtable。 html
Bigtable是一个分布式存储系统,用于管理结构化数据,旨在扩展到很是大的规模。 mysql
有关更多信息,请从此处下载文档。 算法
Google还为其部分应用程序使用Oracle和MySQL数据库。 sql
您能够添加的任何其余信息很是感谢。 数据库
Spanner是Google全球分布式关系数据库管理系统(RDBMS),是BigTable的继承者。 Google声称它不是一个纯粹的关系系统,由于每一个表都必须有一个主键。 后端
这是论文的连接。 缓存
Spanner是Google的可扩展,多版本,全局分布和同步复制的数据库。 它是第一个在全球范围内分发数据并支持外部一致的分布式事务的系统。 本文描述了Spanner的结构,功能集,各类设计决策的基本原理以及暴露时钟不肯定性的新颖时间API。 此API及其实现对于支持外部一致性和各类强大功能相当重要:过去的非阻塞读取,无锁只读事务以及整个Spanner中的原子模式更改。 服务器
Google发明的另外一个数据库是Megastore 。 这是摘要: 网络
Megastore是一种存储系统,旨在知足当今互动在线服务的需求。 Megastore以一种新颖的方式将NoSQL数据存储的可扩展性与传统RDBMS的便利性相结合,并提供强大的一致性保证和高可用性。 咱们在细粒度的数据分区中提供彻底可序列化的ACID语义。 这种分区容许咱们以合理的延迟同步复制广域网中的每次写入,并支持数据中心之间的无缝故障转移。 本文描述了Megastore的语义和复制算法。 它还描述了咱们支持使用Megastore构建的各类Google制做服务的经验。
这是他们本身建造的东西 - 它被称为Bigtable。
http://en.wikipedia.org/wiki/BigTable
谷歌在数据库上有一篇论文:
http://research.google.com/archive/bigtable.html
Bigtable是一个分布式存储系统(由Google构建),用于管理结构化数据,旨在扩展到很是大的规模:数千个商用服务器上的数PB数据。
Google的许多项目都会在Bigtable中存储数据,包括网络索引,Google地球和Google财经。 这些应用程序对Bigtable提出了很是不一样的要求,包括数据大小(从URL到网页到卫星图像)和延迟要求(从后端批量处理到实时数据服务)。
尽管有这些不一样的需求,但Bigtable已成功为全部这些Google产品提供灵活,高性能的解决方案。
一些功能
建筑
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系统中有三种主要的服务器类型 :
Google研究论文的示例:
存储Web页面的示例表的一部分。 行名称是反向URL 。 内容列族包含页面内容 ,锚列族包含引用页面的任何锚点的文本 。 CNN的主页由Sports Illustrated和MY-look主页引用,所以该行包含名为
anchor:cnnsi.com
和anchor:my.look.ca
。 每一个锚单元都有一个版本 ; 内容列有三个版本 ,时间戳为t3
,t5
和t6
。
API
BigTable的典型操做是建立和删除表和列系列,写入数据和从行中删除列。 BigTable在API中为应用程序开发人员提供此功能。 行级别支持事务,但不支持多个行键。
在这里,您能够在华盛顿大学的一个讲座中找到一个显示谷歌杰夫迪恩的视频 ,讨论谷歌后端使用的Bigtable内容存储系统。
虽然谷歌将BigTable用于他们全部的主要应用程序,但他们也将MySQL用于其余(多是次要的)应用程序。