云计算云计算产品和技术大数据&云计算

细数云计算产品和技术-BigTable

2017-03-15  本文已影响53人  风中的大苹果Martecher

简介

BigTable是谷歌自主研发的分布式数据库技术,主要在其内部使用。其优点在于可以可靠的处理PB以上级别的数据,并且能够支持前台服务器集群,实现实用性广泛、可扩展、高性能和高可用性4个目标。在谷歌BigTable已经成为很多产品的基础,包括Google Analaytics、Google Finance、Google Earch等等

架构

BigTable是一个架构非常复杂的系统,由于他是分布式的,所以有别于以往关系型数据库,需要多个节点,主要包括集群和一些依赖的服务。

集群:一个Master节点和多个Tablet节点组成,Master节点用于管理元数据,并处理来自客户端关于元数据的请求。Tablet用于存储数据,并且处理来自客户端数据的请求。

依赖服务:调动、存储和分布式锁及方面。

数据模型和调用接口

对于数据库而言,无论是关系型还是非关系型,数据模型都是核心,同样调用接口也是不可或缺的。

数据模型

表格:和普通数据表一样,也是由行和列组成,但是只支持唯一主键,没有外键用于关系建立

列组:顾名思义就是给列进行分组,提高存取效率而且避免过多的列导致表特别大

Tablet:从行的角度对表数据进行分组分隔,将Tablet分布到不同的服务器上,实现分布式存取数据

时间戳:主要用于数据同步和备份,提供根据每个单元格的时间戳来做垃圾回收

调用接口:BigTable的接口主要以API的形式对外开放,感兴趣的哥们可以做进一步研究,本文不在赘述

存储模型

Tablet运行机制:一个写请求传给Tablet,接着会提交给提交日志,然后请求存储到memtable中,异步处理memtable中的请求,将数据更新到SSTable中。

SSTable:Sorted String Table,按照键排序后存储键值对。

Compaction机制:在数据存储方面非常常用,主要用于对数据的压缩,分为Minor和Major两种数据压实操作。

分布式模型

BigTable有5中独立的构件实现分布式操作:

客户端:用于访问BigTable系统

Chubby服务:高可用和分布式的锁服务,用于协调整个BigTable的运行

Master节点:将Tablet分配给Tablet节点服务器,并且处理与数据库相关的修改操作

Tablet节点:管理Tablet节点集合,处理Tablet的读写操作,并且能够对大的Tablet进行分割

GFS系统:分布式文件系统,用于存储Tablet和SSTable文件。

文件系统

BigTable使用GFS实现数据文件的备份、负载、容错和一致性管理。

GFS:基于传统分布式文件系统实现了性能、可伸缩性、可靠性以及可用性,同时根据其自身的负载和技术情况的观察,也有其创新的设计。高度的容错机制,组件失效被认为是常态事件,在IO和块尺寸上也根据自身数据量大的情况有一定的调整。

GFS架构:存储方面文件分割成固定大小的Chunk,并且分配唯一的Chunk ID。单一Master节点策略大大简化了设计的复杂度,从数据安全的角度,每个数据块都有三个数据备份。

释放价值,分享知识和经验,解读IT前沿和技术。帮助他人,提升自己。更多交流请关注微信公众号itboxes(IT智囊)。

注:图片来源于网络,如有异议,请联系我们,我们将即时处理。

上一篇下一篇

猜你喜欢

热点阅读