gpt4 book ai didi

database - 谷歌使用什么数据库?

转载 作者:太空狗 更新时间:2023-10-30 01:36:38 29 4
gpt4 key购买 nike

是 Oracle 或 MySQL 还是他们自己构建的东西?

最佳答案

大表

A Distributed Storage System for Structured Data

Bigtable is a distributed storage system (built by Google) for managing structured data that is designed to scale to a very large size: petabytes of data across thousands of commodity servers.

Many projects at Google store data in Bigtable, including web indexing, Google Earth, and Google Finance. These applications place very different demands on Bigtable, both in terms of data size (from URLs to web pages to satellite imagery) and latency requirements (from backend bulk processing to real-time data serving).

Despite these varied demands, Bigtable has successfully provided a flexible, high-performance solution for all of these Google products.



部分功能
  • 快速且超大规模的 DBMS
  • 一个稀疏的、分布式的多维排序映射,共享面向行和面向列的数据库的特性。
  • 旨在扩展到 PB 范围
  • 它适用于数百或数千台机器
  • 可以轻松地向系统添加更多机器并自动开始利用这些资源而无需任何重新配置​​
  • 每个表都有多个维度(其中一个是时间字段,允许版本控制)
  • 表针对 GFS(Google 文件系统)进行了优化,将其拆分为多个平板电脑 - 表格的各个部分沿着所选的行拆分,以便平板电脑的大小约为 200 兆字节。

  • 建筑

    BigTable 不是关系数据库。它不支持连接,也不支持丰富的类似 SQL 的查询。每个表都是一个多维稀疏映射。表格由行和列组成,每个单元格都有一个时间戳。一个单元格可以有多个版本,带有不同的时间戳。时间戳允许诸如“选择此网页的‘n’个版本”或“删除早于特定日期/时间的单元格”之类的操作。

    为了管理庞大的表,Bigtable 在行边界处拆分表并将它们保存为平板电脑。一个平板电脑大约200MB,每台机器保存大约100个平板电脑。此设置允许将单个表中的平板电脑分布在多个服务器中。它还允许细粒度的负载平衡。如果一个表正在接收许多查询,它可以卸载其他表或将繁忙的表移到另一台不太繁忙的机器上。此外,如果一台机器出现故障,平板电脑可能会分布在许多其他服务器上,因此对任何给定机器的性能影响最小。

    表存储为不可变的 SSTables 和日志尾部(每台机器一个日志)。当机器用完系统内存时,它会使用 Google 专有的压缩技术(BMDiff 和 Zippy)压缩一些平板电脑。小压缩只涉及几个片,大压缩涉及整个表系统并回收硬盘空间。

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

    实现

    BigTable 建立在 谷歌文件系统 (GFS),用作日志和数据文件的后备存储。 GFS 为 SSTables 提供可靠的存储,SSTables 是一种用于持久化表数据的 Google 专有文件格式。

    BigTable 大量使用的另一项服务是 小胖 ,一种高可用、可靠的分布式锁服务。 Chubby 允许客户端获取锁,可能会将它与一些元数据相关联,它可以通过将保持事件消息发送回 Chubby 来更新这些元数据。锁存储在类似文件系统的分层命名结构中。

    主要有三个 服务器类型 对 Bigtable 系统感兴趣:
  • 主服务器:将平板电脑分配给平板电脑服务器,跟踪平板电脑的位置并根据需要重新分配任务。
  • 平板服务器:处理平板和拆分平板的读/写请求,当它们超过大小限制(通常为 100MB - 200MB)时。如果平板服务器出现故障,则 100 个平板服务器每台拾取 1 个新平板,系统就会恢复。
  • 锁服务器:Chubby 分布式锁服务的实例。 BigTable 中的许多操作都需要获取锁,包括打开平板电脑进行写入、确保一次不超过一个事件的 Master,以及访问控制检查。

  • Google 研究论文中的示例:

    alt text

    A slice of an example table that stores Web pages. The row name is a reversed URL. The contents column family contains the page contents, and the anchor column family contains the text of any anchors that reference the page. CNN's home page is referenced by both the Sports Illustrated and the MY-look home pages, so the row contains columns named anchor:cnnsi.com and anchor:my.look.ca. Each anchor cell has one version; the contents column has three versions, at timestamps t3, t5, and t6.



    API

    BigTable 的典型操作是创建和删除表和列族、写入数据和从行中删除列。 BigTable 通过 API 向应用程序开发人员提供此功能。行级别支持事务,但不支持跨多个行键。

    这是 link to the PDF of the research paper .

    在这里你可以找到一个 video showing Google's Jeff Dean in a lecture at the University of Washington ,讨论 Google 后端使用的 Bigtable 内容存储系统。

    关于database - 谷歌使用什么数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/362956/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com