首页 > 代码库 > BigTable之Tablet查找
BigTable之Tablet查找
前面提到的SSTable是数据存储的一个文件,BigTable说到底还是一个由表组成的数据库,当我们查找数据时还是要告诉BigTable数据所在的表的名称,在BigTable中,数据表是由Tablet组成的,每个Tablet包含有多个SSTable,并且Tablet的存储是分布式的,意味着,同一个表中的不同Tablet可能会被存储到不同的Tablet服务器上。
当用户想通过表的名字获取表内的数据时,首先要通过表名得到这个表中所有Tablet的位置信息,Tablet的索引结构如下图:
在Chubby服务器中存有一个Root Tablet的信息,Root Tablet中存放的是所有Meta Tablet的位置信息,每一个Meta Tablet中存放的又是用户表的Tablet信息,这种结构类似于B+树,通过这种结构,可以很快地找到用户表的Tablet,下面查找数据的方法则可以结合SSTable中查找数据的方法。
为了快速地找到相应的Tablet,BigTable为Tablet的读取提供了缓存机制,在每次读取某个Tablet时,会多读出几条Tablet信息,供下次查询使用。这种缓存的思路可以借鉴应用到其他系统中。
关于Tablet的分配,这个涉及到BigTable关于服务器加入和退出的机制,下一篇进行讨论。
BigTable之Tablet查找
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。