是Oracle, MySQL还是他们自己做的?


当前回答

谷歌服务具有多语言持久性体系结构。BigTable利用了它的大多数服务,如YouTube,谷歌搜索,谷歌分析等。搜索服务最初使用MapReduce作为索引基础设施,但后来在Caffeine发布期间过渡到BigTable。

谷歌云数据存储在谷歌的生产中有超过100个面向内部和外部用户的应用程序。应用程序,如Gmail, Picasa,谷歌日历,Android市场和AppEngine使用云数据存储和Megastore。

谷歌趋势使用MillWheel进行流处理。谷歌广告最初使用MySQL,后来迁移到F1 DB -一个自定义编写的分布式关系数据库。Youtube在Vitess中使用MySQL。谷歌在谷歌文件系统的帮助下在商用服务器上存储艾字节的数据。

来源:谷歌数据库:谷歌服务如何存储pb - exabyte规模的数据?

YouTube数据库-它如何存储这么多的视频而不耗尽存储空间?

其他回答

谷歌服务具有多语言持久性体系结构。BigTable利用了它的大多数服务,如YouTube,谷歌搜索,谷歌分析等。搜索服务最初使用MapReduce作为索引基础设施,但后来在Caffeine发布期间过渡到BigTable。

谷歌云数据存储在谷歌的生产中有超过100个面向内部和外部用户的应用程序。应用程序,如Gmail, Picasa,谷歌日历,Android市场和AppEngine使用云数据存储和Megastore。

谷歌趋势使用MillWheel进行流处理。谷歌广告最初使用MySQL,后来迁移到F1 DB -一个自定义编写的分布式关系数据库。Youtube在Vitess中使用MySQL。谷歌在谷歌文件系统的帮助下在商用服务器上存储艾字节的数据。

来源:谷歌数据库:谷歌服务如何存储pb - exabyte规模的数据?

YouTube数据库-它如何存储这么多的视频而不耗尽存储空间?

正如其他人所提到的,谷歌使用了一种名为BigTable的本地解决方案,他们已经发布了几篇论文,将其描述到现实世界中。

Apache开发人员实现了这些论文中提出的思想,称为HBase。HBase是更大的Hadoop项目的一部分,根据他们的网站,Hadoop是一个软件平台,让人们可以轻松地编写和运行处理大量数据的应用程序。其中一些基准相当令人印象深刻。他们的网站是http://hadoop.apache.org。

虽然谷歌所有的主要应用程序都使用BigTable,但他们也在其他(可能是次要的)应用程序中使用MySQL。

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

这是论文的链接。

Spanner is Google's scalable, multi-version, globally-distributed, and synchronously-replicated database. It is the first system to distribute data at global scale and support externally-consistent distributed transactions. This paper describes how Spanner is structured, its feature set, the rationale underlying various design decisions, and a novel time API that exposes clock uncertainty. This API and its implementation are critical to supporting external consistency and a variety of powerful features: non-blocking reads in the past, lock-free read-only transactions, and atomic schema changes, across all of Spanner.

谷歌发明的另一个数据库是Megastore。摘要如下:

Megastore is a storage system developed to meet the requirements of today's interactive online services. Megastore blends the scalability of a NoSQL datastore with the convenience of a traditional RDBMS in a novel way, and provides both strong consistency guarantees and high availability. We provide fully serializable ACID semantics within fine-grained partitions of data. This partitioning allows us to synchronously replicate each write across a wide area network with reasonable latency and support seamless failover between datacenters. This paper describes Megastore's semantics and replication algorithm. It also describes our experience supporting a wide range of Google production services built with Megastore.

知道BigTable不是一个关系数据库(像MySQL),而是一个巨大的(分布式的)哈希表,具有非常不同的特征也很方便。您可以自己在谷歌AppEngine平台上使用BigTable(有限版本)。

除了上面提到的Hadoop之外,还有许多其他实现试图解决与BigTable相同的问题(可伸缩性、可用性)。我昨天看到一篇不错的博客文章,在这里列出了其中的大部分。