Reading Ingestion —— Bigtable: A Distributed Storage System for Structured Data

Bigtable是一个分布式存储系统,用于管理结构化数据,广泛应用于谷歌的产品中。其数据模型为稀疏的、持久的、多维排序映射,基于行键、列键和时间戳。系统依赖于GFS分布式文件系统和Chubby分布式锁服务。Bigtable的实现包括客户端库、一个主服务器和多个tablet服务器,每个tablet由三部分存储:行、列族和时间戳。系统支持原子性读写、高效的数据定位和多种压缩策略,确保了高可用性和高性能。
摘要由CSDN通过智能技术生成

Bigtable: A Distributed Storage System for Structured Data

  \space  

Acquirement 收获

  1. Bigtable’s Data Model: is a sparse, distributed, persistent multidimensional sorted map. The map is indexed by a row key, column key, and a timestamp;
    ( B i g t a b l e 的 数 据 模 型 : 由 行 键 、 列 键 、 时 间 戳 构 成 的 m a p 。 ) ( Bigtable的数据模型:由行键、列键、时间戳构成的map。) (Bigtablemap)
  2. Bigtable uses the distributed Google File System (GFS) to store log and data files.
    ( B i g t a b l e 用 于 存 储 数 据 和 日 志 的 G F S 分 布 式 文 件 系 统 。 ) (Bigtable用于存储数据和日志的GFS分布式文件系统。) (BigtableGFS)
  3. Bigtable relies on a highly-available and persistent distributed lock service called Chubby.
    ( C h u b b y 是 B i g t a b l e 的 高 可 用 、 持 久 分 布 式 锁 服 务 。 ) (Chubby是Bigtable的高可用、持久分布式锁服务。) (ChubbyBigtable)
  4. The Bigtable implementation has three major components: a library that is linked into every client, one master server, and many tablet servers.
    ( B i g t a b l e 实 现 的 主 要 组 成 部 分 由 : 每 个 c l i e n t 都 连 接 的 l i b r a r y 、 一 个 m a s t e r 、 多 个 t a b l e t   s e r v e r 。 ) (Bigtable实现的主要组成部分由:每个client都连接的library、一个master、多个tablet \space server。) (Bigtableclientlibrarymastertablet server)
  5. We use a three-level hierarchy analogous to that of a B± tree to store tablet location information:
    ( B i g t a b l e 的 数 据 定 位 : 用 一 个 类 似 于 B 树 的 三 层 结 构 来 存 储 t a b l e t 的 位 置 信 息 。 ) (Bigtable的数据定位:用一个类似于B树的三层结构来存储tablet的位置信息。) (BigtableBtablet)
  6. The master keeps track of the set of live tablet servers by Chubby, and the current assignment of tablets to tablet servers, including which tablets are unassigned.
    ( B i g t a b l e 的 数 据 分 配 : m a s t e r 通 过 C h u b b y 来 追 踪 存 活 t a b l e t   s e r v e r s 、 目 前 已 分 配 的 t a b l e t s 到 ) (Bigtable的数据分配:master通过Chubby来追踪存活tablet \space servers、目前已分配的tablets到) (BigtablemasterChubbytablet serverstablets)
    ( t a b l e t   s e r v e r 情 况 、 未 分 配 的 t a b l e t 情 况 ) (tablet \space server情况、未分配的tablet情况) (tablet servertablet)
  7. The Bigtable 's tablet serving:recover tablet、write operation、read operation.
    ( B i g t a b l e 的 t a b l e t 服 务 : t a b l e t 恢 复 、 写 操 作 、 读 操 作 。 ) (Bigtable的tablet服务:tablet恢复、写操作、读操作。) (Bigtabletablettablet)
  8. The Bigtable 's compaction:minor compaction、merging compaction、major compaction.
    ( B i g t a b l e 的 压 缩 : 小 压 缩 、 合 并 压 缩 、 大 压 缩 。 ) (Bigtable的压缩:小压缩、合并压缩、大压缩。) (Bigtable)

  \space  

Introduction 引言

  1. A distributed storage system for managing structured data at Google called Bigtable.
    ( B i g t a b l e 是 用 于 管 理 结 构 化 数 据 的 分 布 式 存 储 系 统 。 ) ( Bigtable是用于管理结构化数据的分布式存储系统。) (Bigtable)
  2. Bigtable has achieved several goals: wide applicability, scalability, high performance, and high availability.
    ( 实 现 了 广 泛 应 用 性 、 可 扩 展 、 高 性 能 、 高 可 用 。 ) ( 实现了广泛应用性、可扩展、高性能、高可用。) (广)
  3. These products use Bigtable for a variety of demanding workloads, which range from throughput-oriented batch-processing jobs to latency-sensitive serving of data to end users.
    ( 适 用 于 面 向 高 吞 吐 量 的 批 处 理 任 务 、 对 延 迟 敏 感 的 服 务 类 产 品 。 ) ( 适用于面向高吞吐量的批处理任务、对延迟敏感的服务类产品。) ()
  4. Bigtable provides clients with a simple data model that supports dynamic control over data layout and format, and allows clients to reason about the locality properties of the data represented in the underlying storage.
    ( 提 供 了 支 持 动 态 控 制 数 据 布 局 及 格 式 的 简 单 数 据 模 型 。 ) ( 提供了支持动态控制数据布局及格式的简单数据模型。) ()
  5. Bigtable schema parameters let clients dynamically control whether to serve data out of memory or from disk.
    ( 其 模 式 参 数 使 得 C l i e n t 动 态 控 制 是 从 内 存 还 是 磁 盘 中 提 供 数 据 。 ) ( 其模式参数使得Client动态控制是从内存还是磁盘中提供数据。) (使Client)

  \space  

Data Model 数据模型

  \space  

Map 映射
  1. A Bigtable is a sparse, distributed, persistent multidimensional sorted map.
    ( 稀 疏 、 分 布 式 、 持 久 的 多 位 排 序 映 射 。 ) ( 稀疏、分布式、持久的多位排序映射。) ()
  2. The map is indexed by a row key, column key, and a timestamp; each value in the map is an uninterpreted array of bytes.
    ( 由 行 键 、 列 键 、 时 间 戳 索 引 , 每 个 值 是 一 个 无 意 义 的 字 节 数 组 。 ) ( 由行键、列键、时间戳索引,每个值是一个无意义的字节数组。) ()

( r o w : s t r i n g , c o l u m n : s t r i n g , t i m e : i n t 64 ) (row:string,column:string,time:int64) (row:string,column:string,time:int64) → \rightarrow s t r i n g string string

  \space  

Webtable:a large collection of web pages and related information

在这里插入图片描述

  1. In Webtable,The row name is a reversed URL.
    ( r o w   k e y 为 U R L 。 ) ( row\space key为URL。) (row keyURL)
  2. The contents column family contains the page contents.
    ( c o n t e n t s   c o l u m n   f a m i l y 包 含 了 页 的 内 容 。 ) ( contents \space column \space family包含了页的内容。) (contents column family)
  3. 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.
    ( a n c h o r   c o l u m n   f a m i l y 包 含 了 引 用 此 页 面 的 描 点 文 本 , 包 括 了 S p o r t s   I l l u s t r a t e d 和 M Y − l o o k ) ( anchor \space column \space family包含了引用此页面的描点文本,包括了Sports \space Illustrated 和 MY-look) (anchor column familySports IllustratedMYlook)
  4. Each anchor cell has one version; the contents column has three versions, at timestamps t3, t5, and t6.
    ( 每 个 a n c h o r   c e l l 中 只 有 一 个 版 本 , 而 每 个 c o n t e n t s   c o l u m n 有 三 个 版 本 ) ( 每个anchor\space cell中只有一个版本,而每个contents\space column有三个版本) (anchor cellcontents column)

  \space  

Rows 行
  1. Every read or write of data under a single row key is atomic (regardless of the number of different columns being read or written in the row), a design decision that makes it easier for clients to reason about the system’s behavior in the presence of concurrent updates to the same row.
    ( 单 个 r o w   k e y 下 的 每 个 数 据 的 读 写 操 作 是 原 子 性 的 , 不 管 这 一 行 有 几 个 不 同 列 组 成 。 ) ( 单个row\space key下的每个数据的读写操作是原子性的,不管这一行有几个不同列组成。) (row key)
    ( 这 是 方 便 C l i e n t 考 虑 如 何 处 理 对 同 一 行 并 发 更 新 时 的 行 为 。 ) (这是方便Client考虑如何处理对同一行并发更新时的行为。) (便Client)
  2. Each row range is called a tablet, which is the unit of distribution and load balancing,and dynamically partitioned.
    ( 一 个 r o w   r a n g e 内 的 r o w s 称 为 t a b l e t , 是 动 态 分 布 和 负 载 均 衡 的 单 位 。 ) ( 一个row\space range内的rows称为tablet,是动态分布和负载均衡的单位。) (row rangerowstablet)
  3. Bigtable maintains data in lexicographic order by row key.As a result, reads of short row ranges are efficient and typically require communication with only a small number of machines.
    ( 由 于 r o w   k e y s 是 按 照 字 典 排 序 的 , 所 以 通 过 r o w   r a n g e 可 以 高 效 读 取 并 使 得 机 器 间 通 讯 减 少 。 ) ( 由于row\space keys是按照字典排序的,所以通过row\space range可以高效读取并使得机器间通讯减少。) (row keysrow range使)
  4. For example, in Webtable, pages in the same domain are grouped together into contiguous rows by reversing the hostname components of the URLs:we store data for maps.google.com/index.html under the key com.google.maps/index.html.
    ( 比 如 在 上 述 的 W e b t a b l e 中 , 将 相 同 领 域 的 页 通 过 将 U R L 的 主 机 名 颠 倒 的 方 法 放 在 连 续 的 行 中 。 ) ( 比如在上述的Webtable中,将相同领域的页通过将URL的主机名颠倒的方法放在连续的行中。) (WebtableURL)
    ( 比 如 m a p s . g o o g l e . c o m / i n d e x . h t m l 与 c o m . g o o g l e . m a p s / i n d e x . h t m l 。 ) (比如maps.google.com/index.html与com.google.maps/index.html。) (maps.google.com/index.htmlcom.google.maps/index.html)

  \space  

Column Families 列族
  1. Column keys are grouped into sets called column families, which form the basic unit of access control.
    ( 一 个 c o l u m n   f a m i l i y 由 一 组 相 关 的 c o l u m n   k e y 组 成 , 是 访 问 控 制 的 单 位 。 ) ( 一个column\space familiy由一组相关的column\space key组成,是访问控制的单位。) (column familiycolumn key访)
  2. A column family must be created before data can be stored under any column key in that family; after a family has
    been created, any column key within the family can be used.
    ( 一 个 c o l u m n   f a m i l i y 创 建 之 后 , c o l u m n   k e y 才 可 以 被 使 用 。 ) ( 一个column\space familiy创建之后,column\space key才可以被使用。) (column familiycolumn key使)
  3. It is our intent that the number of distinct column families in a table be small (in the hundreds at most), and that families rarely change during operation. In contrast, a table may have an unbounded number of columns.
    ( 独 立 的 c o l u m n   f a m i l i y 往 往 只 有 数 百 个 , 而 且 很 少 在 操 作 期 间 更 改 , 而 c o l u m n 数 量 不 受 限 制 。 ) ( 独立的column\space familiy往往只有数百个,而且很少在操作期间更改,而column数量不受限制。) (column familiy
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值