是Oracle还是MySQL还是他们自己构建的东西?
答案 0 :(得分:565)
答案 1 :(得分:50)
答案 2 :(得分:28)
Spanner是Google全球分布式关系数据库管理系统(RDBMS),是BigTable的继承者。谷歌声称它不是一个纯粹的关系系统,因为每个表都必须有一个主键。
Here是论文的链接。
Spanner是Google的可扩展,多版本,全球分布式和 同步复制的数据库。这是第一个系统 在全球范围内分发数据并支持外部一致性 分布式交易。本文描述了Spanner是如何实现的 结构化,其功能集,各种设计的基本原理 决策,以及暴露时钟不确定性的新颖时间API。这个 API及其实现对于支持外部至关重要 一致性和各种强大功能:非阻塞读取 过去,无锁只读事务和原子模式更改, 跨越所有Spanner。
Google发明的另一个数据库是Megastore。这是摘要:
Megastore是一种满足要求的存储系统 今天的互动在线服务。 Megastore融合了可扩展性 一个NoSQL数据存储区,具有传统RDBMS的便利性 新颖的方式,并提供强大的一致性保证和高 可用性。我们提供完全可序列化的ACID语义 细粒度的数据分区。这种分区允许我们 通过广域网同步复制每次写入 合理的延迟并支持数据中心之间的无缝故障转移。 本文描述了Megastore的语义和复制算法。 它还描述了我们支持各种Google的经验 用Megastore建立的生产服务。
答案 3 :(得分:19)
正如其他人所提到的,Google使用了一种名为BigTable的本土解决方案,他们发布了一些将其描述为现实世界的论文。
Apache人员对这些论文中提出的想法进行了实施,称为HBase。 HBase是较大的Hadoop项目的一部分,该项目根据其网站“是一个软件平台,可以轻松编写和运行处理大量数据的应用程序。”一些基准测试令人印象深刻。他们的网站位于http://hadoop.apache.org。
答案 4 :(得分:13)
虽然Google将BigTable用于所有主要应用程序,但also use MySQL用于其他(可能是次要的)应用程序。
答案 5 :(得分:9)
知道BigTable不是关系型数据库(如MySQL),而是一个具有非常不同特征的巨大(分布式)hash table也许也很方便。您可以在Google AppEngine平台上自己玩(限量版)BigTable。
除了上面提到的Hadoop之外,还有许多其他实现尝试解决与BigTable相同的问题(可伸缩性,可用性)。昨天我看到了一篇很好的博客文章,列出了大多数here。
答案 6 :(得分:6)
Google主要使用Bigtable。
Bigtable是一个分布式存储系统,用于管理结构化数据,旨在扩展到非常大的范围。
有关详细信息,请从here下载文档。
Google还为其部分应用程序使用Oracle和MySQL数据库。
您可以添加更多信息,我们非常感谢。
答案 7 :(得分:1)
Google服务具有多语言持久性架构。 BigTable被YouTube,Google搜索,Google Analytics等大多数服务所利用。该搜索服务最初使用MapReduce作为其索引基础结构,但后来在Caffeine发布期间过渡到BigTable。
Google Cloud数据存储区拥有面向内部和外部用户的100多个Google生产应用。 Gmail,Picasa,Google日历,Android Market和AppEngine等应用程序都使用Cloud Datastore和Megastore。
Google趋势使用MillWheel进行流处理。 Google Ads最初使用MySQL,后来又迁移到F1 DB(一个自定义的书面分布式关系数据库)。 Youtube在Vitess中使用MySQL。 Google在Google文件系统的帮助下,跨商品服务器存储了EB级数据。
来源:Google Databases: How Do Google Services Store Petabyte-Exabyte Scale Data?
YouTube Database – How Does It Store So Many Videos Without Running Out Of Storage Space?