BigTable

2021-11-28  本文已影响0人  Wu杰语

BigTable 是google三架马车之一,英文原文地址https://static.googleusercontent.com/media/research.google.com/zh-CN//archive/bigtable-osdi06.pdf,中文翻译:http://dblab.xmu.edu.cn/post/google-bigtable/

BigTable是什么

Bigtable is a distributed storage system for managing structured data that is designed to scale to a very large size。
BigTable是一个分布式存储系统,解决大规模数据分布式存储、高性能、高可用,并且对比与MySQL分库分表来说,可伸缩性使得其运维要简单很多。BigTable存储是KV数据,放弃了SQL的结构化数据。

BigTable架构

BigTable

如图,BigTable由四种组件组成:

这个架构看起来还是比较简单的。

数据结构

存储

BigTable存储是稀疏数据,首先它是一个KV数据结构,每一行的Key对应的value都是一组列,并且每一行的列可以不同。列可以分为列族,在一个例族中并不是每个列都有数据,所以被称为稀疏数据。
一行中的列可以存储不同时刻的值,每个列祖物理上存储在同一台服务器上。

这种数据结构,可伸缩采用的是自动可伸缩,数据先按照键一段一段的分区,当某个段数据越来越大的时候,就会将该段进行分裂,如果越来越小,就会和临进的段合并。

数据存储

数据中有一部分目录数据,这部分目录数据作为tablet存储起来,而不是存储在chbby中。当读取一个数据的时候,先到chubby中读取到Root Tablet的位置,然后访问Root Tablet去查找元数据table位置,然后访问元数据tablet找到数据所在的tablet位置,最后访问数据的tablet找到对应的数据。如上图所示,访问一条数据实际上访问了3次tablet数据。正式由于元数据存储在tablet中,所以元数据可以非常庞大,可存储的数据非常大。

小结

作为gogole三架马车之一,BigTable还是非常值得读一下的,它是一个分布式数据库的简单原型,学习了它,再理解其它分布式存储会触类旁通。

上一篇 下一篇

猜你喜欢

热点阅读