ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

(4)Google云计算原理与应用之分布式结构化数据表Bigtable

2019-06-12 13:04:15  阅读:427  来源: 互联网

标签:存储 Google 数据表 服务器 子表 数据 Bigtable


1.设计动机与目标

Bigtable的设计动机:

(1)需要存储的数据种类繁多

包括URL、网页内容、用户的个性化设置在内的数据都是Google需要经常处理的 (2)海量的服务请求 Google运行着目前世界上最繁忙的系统,它每时每刻处理的客户服务请求数量是普通的系统根本无法承受的  (3)商用数据库无法满足需求 一方面现有商用数据库的设计着眼点在于其通用性。 另一方面对于底层系统的完全掌控会给后期的系统维护、升级带来极大的便利。 Bigtable应达到的基本目标: (1)广泛的适用性 Bigtable是为了满足一系列Google产品而并非特定产品的存储要求。 (2)很强的可扩展性 根 据 需要随 时可以 加入 或撤销 服务 器  (3)高可用性 确保几乎所有的情况下系统都可用 (4)简单性 底层系统的简单性既可以减少系统出错的概率 ,也为上层应用的开发带来便利   2.数据模型 Bigtable是一个分布式多维映射表,表中的数据通过一个行关键字(Row Key)、一个列关键字(Column Key)以及一个时间戳(Time Stamp)进行索引  行: Bigtable的行关键字可以是任意的字符串,但是大小不能够超过64KB 表中数据都是根据行关键字进行排序的,排序使用的是词典序 同一地址域的网页会被存储在表中的连续位置 倒排便于数据压缩,可以大幅提高压缩率 列: 将其组织成所谓的列族(Column Family) 族名必须有意义,限定词则可以任意选定 组织的数据结构清晰明了,含义也很清楚 族同时也是Bigtable中访问控制(Access Control)的基本单元 时间戳: Google的很多服务比如网页检索和用户的个性化设置等都需要保存不同时间的数据,这些不同的数据版本必须通过时间戳来区分。 Bigtable中的时间戳是64位整型数,具体的赋值方式可以用户自行定义    3.Bigtable的系统架构 Bigtable的基本架构: Bigtable中Chubby的主要作用: (1)选取并保证 同一时 间内 只有一 个主服务器( Master Server )。  (2)获取子表的位置信息。 (3)保存Bigtable的模式信息及访问控制列表。   4.Bigtable的主服务器   5.Bigtable的子表服务器 SSTable格式示意图: 不同子表的SSTable可以共享 每个子表服务器上仅保存一个日志文件 Bigtable规定将日志的内容按照键值进行排序 每个子表服务器上保存的子表数量可以从几十到上千不等,通常情况下是100个左右 子表服务器的实际组成:   子表地址组成: Bigtable系统的内部采用的是一种类似B+树的三层查询体系 BigTable的数据存储: 较新的数据存储在内存中一个称为内存表(Memtable)的有序缓冲里,较早的数据则以SSTable格式保存在GFS中。  BigTable的读写操作: 读和写操作有很大的差异性 三种形式压缩之间的关系:   6.Bigtable的性能优化 (1)局部性群组 (2)压缩(3)布隆过滤器

标签:存储,Google,数据表,服务器,子表,数据,Bigtable
来源: https://www.cnblogs.com/paradis/p/11008942.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有