《大规模分布式存储系统》第六章 分布式表格系统

本文深入探讨了分布式表格系统,以Google BigTable为例,详细介绍了其架构、数据分布、复制与一致性、容错机制、负载均衡以及分裂与合并。随后讨论了Google Megastore如何在BigTable基础上实现事务处理,以及其系统架构和并发控制。最后对比了Windows Azure Storage与BigTable的区别,强调了强一致性和元数据管理的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • Google BigTable

表格存储 与 键值存储

    表格存储的数据格式<rowkey,column family,timestamp>代表一行,所有的数据是主键(rowkey)排序的,可以抽象为主键为key,行尾value的键值存储,故称键值存储是表格存储的一个特例。

    需要注意的是,column family表示列组(很多列,需要预先定义),每列还可以有qualifler(子列,可以不用预先定义)。timestamp表述数据的版本,常规有两种机制,一种是保存固定的个数,另一种是保存制定时间内的所有版本。


架构

    BigTable系统分为上下两层,下层是GFS存储日志和数据,上层是索引层,本章着重介绍上层系统。上层系统主要分为三部分:中心控制节点、数据节点、Chubby锁服务(元信息存储、配置、节点探测等,可以理解为ZK)。上层存储索引信息,是单副本,故障后从下层的日志数据恢复上层索引数据。

    中心节点负责维护子表的元信息、子表的合并与分裂、子表级别的负载均衡等管理控制。

    Chubby锁服务类比开源zk,主要有一下职责:

        1. 中心节点选主。

        2. 存储导引数据(Bigtable采用二级索引,最原始的数据存在Chubby)。

        3. 节点加入、离开。

        4. 存储schema以及权限信息。

    二级索引:用户数据存在用户表,用户表的元数据存在元数据表(位置,文件编号、日志回放点),根表存储元数据表的元数据(主要是位置信息),根表称作导引信息存在Chubby内。


数据分布

    顺序存储,表格系统常用的分布方式,方便扫描。客户端读数据的大致流程:先从Chubby获取根表信息,接着获取元数据表信息,最后定位到子表(居然不是查中心节点)。客户端有两个策略需要注意,第一是缓存表信息,第二是预读子表的元数据。


复制与一致性

    首先,子表节点(Table Server)是单副本,通过Chubby互斥锁保证单副本全局唯一,防止子表节点加回时引入的不一致问题。其次,GFS中存储的是操作日志 和 SSTable数据(用户数据),当子表节点故障时,选取新的节点回放日志即可快速建立内存数据 + SSTable数据 = 全量的用户数据。最后,本质上BigTable实在GFS上搭建的一层索引,用户可以根据key查找索引再去获取数据,对比GFS返回偏移量(非连续)更好用一些。

大规模分布式存储系统:原理解析与架构实战》是分布式系统领域的经典著作,由阿里巴巴高级技术专家“阿里日照”(OceanBase核心开发人员)撰写,阳振坤、章文嵩、杨卫华、汪源、余锋(褚霸)、赖春波等来自阿里、新浪、网易和百度的资深技术专家联袂推荐。理论方面,不仅讲解了大规模分布式存储系统的核心技术和基本原理,而且对谷歌、亚马逊、微软和阿里巴巴等国际型大互联网公司的大规模分布式存储系统进行了分析;实战方面,首先通过对阿里巴巴的分布式数据库OceanBase的实现细节的深入剖析完整地展示了大规模分布式存储系统的架构与设计过程,然后讲解了大规模分布式存储技术在云计算和大数据领域的实践与应用。, 《大规模分布式存储系统:原理解析与架构实战》内容分为四个部分:基础篇——分布式存储系统的基础知识,包含单机存储系统的知识,如数据模型、事务与并发控制、故障恢复、存储引擎、压缩/解压缩等;分布式系统的数据分布、复制、一致性、容错、可扩展性等。范型篇——介绍谷歌、亚马逊、微软、阿里巴巴等著名互联网公司的大规模分布式存储系统架构,涉及分布式文件系统分布式键值系统分布式表格系统以及分布式数据库技术等。实践篇——以阿里巴巴的分布式数据库OceanBase为例,详细介绍分布式数据库内部实现,以及实践过程中的经验。专题篇——介绍分布式系统的主要应用:云存储和大数据,这些是近年来的热门领域,本书介绍了云存储平台、技术与安全,以及大数据的概念、流式计算、实时分析等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值