1、BigTable学习分享,论文的主要内容,摘要 简介 数据模型 客户端API BigTable的底层数据结构 实现原理 改进策略 性能试验 设计结论 bigTable的支持 相关工作 结论,本次重点讲的几个部分,数据模型 底层数据结构 实现原理 改进策略,摘要,简介,数据模型,BigTable的数据模型 一个例子 Row Column Family Timestamps,数据模型,例子,例子,Row,Column Family,TimeStamps,客户端API(read的例子),Scanner scanner(T); Scanner * stream; stream = scanner.Fe
2、tchColumnFamily(“anchor“); stream-SetReturnAllVersions(); scanner.Lookup(“n.www“); for(; !stream-Done(); stream-next()printf(“%s %s %lld %sn“,scanner.RowName(),stream-ColumnName(),stream-MicorTimestamp(),stream-Value(); ,客户端API(write的例子),/Open the table Table * T = OpenOrDie(“/bigtable/web/webtable“
3、);/Write a new anchor and delete an old anchor RowMutation r1(T, “n.www“); r1.Set(“anchor:www.c-span.org“, “CNN“); r1.Delete(“anchor:“); Operation op; Apply(,底层数据结构,上层用MapReduce进行计算 下层用GFS分布式文件系统存储日志和文件 通常和其他分布式程序部署在同一套集群环境中 用SSTable文件格式来存储Bigtable数据 依赖于高可用的分布式锁服务Chubby,用SSTable文件格式来存储Bigtable数据,依赖于
4、高可用的分布式锁服务Chubby,来看一个Hbase的大的框架,Hbase上的map reduce,Hbase的详细架构图,对比定义,MapReduce = Hardoop GFS = HDFS BigTable = Hbase Chubby = ZooKeeper SSTable = Store(再回头对比block=StoreFile,blockIndex= MemStore) Row ColumnFamily Timestamp的概念一样,实现原理,系统的三个部分 Master的功能 Tablet server的功能 Client与big table的交互问题 Tablet locati
5、on Tablet assignment Tablet serving compactions,系统的三个部分,client librarymaster servermany tablet servers(可以动态增加),master的功能,assign tablets to table servers(负载均衡)detecting the addition and expiration of table server (table server的动态增减)balancing the tablet-server loadgarbage collection of files in GFS (不
6、知道具体指什么)handle schema changes such as table and column faimily creations,tablet server的功能,管理一系列tablet, 101000个handle read and write requst to the tabletssplits tablets that have grown too large,client 与 Bitable的交互问题,数据读写,并不经过master(定位是在chubby做的)master更多承担维持Bigtable均衡负载的角色master系统资源消耗一般都很少,tablet loc
7、ation,Tablet location,用一个类似于B+树的三层结构,来存储tablet定位信息chubby file = root tablet = meta tablet = user tabletroot tablet 不分裂,因此保持三层结构不会变成四层、五层、六层metadata table 存储的也是key/value对 key 是 一个tablet 的table 标石和talet的尾部标记value是tablet的位置信息一个meta 行大概1kb内存数据128MB metadata tablets, is sufficient to address 234 tablets客户端会cache tablet location信息,但具体没看懂,看一个Hbase的location,Tablet =Region Tablet Server = Region Server,tablet assignment,table serving,table serving,对一下Hbase的log部分,compactions,Hbase的分裂和收缩,改进策略,Q&A,?,