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关于服务器加入和退出的机制,下一篇进行讨论。

时间: 2024-10-25 08:25:29

BigTable之Tablet查找的相关文章

kudu tablet design

Tablet是kudu表的水平分区,类似于google Bigtable的tablet,或者HBase的region.每个tablet存储着一定连续range的数据(key),且tablet两两间的range不会重叠.一张表的所有tablet包含了这张表的所有key空间. Tablet由RowSet组成,RowSet由一组rows组成(n条数据.n行数据).RowSet是不相交的,即不同的RowSet间的row不会交叉,因此一条给定的数据,只会存在于一个RowSet中.虽然Rowset是不相交的

Percolator:基于BigTable的分布式事务实现

Google为了解决网页索引的增量处理,以及维护数据表和索引表的一致性问题,基于BigTable实现了一个支持分布式事务的存储系统.这里重点讨论这个系统的分布式事务实现,不讨论percolator中为了支持增量计算而实现的Notifications机制. 该系统基于BigTable,支持snapshot isolation隔离级别,这个隔离级别不在ANSI定义的隔离级别范围内.简单来说,就是一个事务看到的是一个stable的数据库的快照.快照隔离相对于可串行化隔离级别的优点是更高的读性能,不需要

Hadoop数据管理介绍及原理分析

Hadoop数据管理介绍及原理分析 最近2014大数据会议正如火如荼的进行着,Hadoop之父Doug Cutting也被邀参加,我有幸听了他的演讲并获得亲笔签名书一本,发现他竟然是左手写字,当然这个他解释为个人习惯问题,也是,外国人左手写字的为数不少,在中国,左撇子在小时候的父母眼中就是“异类”,早早的被矫正过来.废话不多说了,接下来介绍Hadoop的数据管理. Hadoop的数据管理,主要包括Hadoop的分布式文件系统HDFS.分布式数据库HBase和数据仓库工具Hive. HDFS的数据

Hadoop数据管理

本节主要从三方面介绍Hadoop数据管理:分布式文件系统HDFS.分部式数据库HBase和数据仓库工具Hive. 1. HDFS的数据管理 HDFS是分布式计算的存储基石,Hadoop分布式文件系统和其他分布式文件系统由很多类似的特性: 1)对于整个集群有单一的命名空间: 2)具有数据一致性,都适合一次写入多次读取的模型,客户端在文件没有被成功创建之前是没有办法看到文件存在的: 3)文件会被分割成多个文件块,每个文件快被分配存储到数据节点上,而且会根据配置由复制文件快来保证数据的安全性. HDF

云计算下的数据库 分析 以及部分互联网公司眼下採用的新型数据库总结

云计算下的新型数据库技术 摘要:在这个信息化的时代,我们的一举一动都离不开与数据打交道,特别是云计算和大数据时代的到来,使得传统数据库的性能已无法满足海量数据的实时交易查询需求.在性能和成本的双重压力之下.云计算下的数据库须要寻找突破之路. 1.简单介绍: 云计算通过整合.管理和调配分布在互联网中的全部计算资源,以统一的界面同一时候向用户提供服务. 互联网提供的各种计算形式的应用以及提供这些服务的数据中心和软硬件基础设施.提供的服务成为软件即服务(SaaS),数据中心的软硬件基础设施即为云,这样

Hadoop与分布式开发

hadoop上的并行应用程序开发是基于MapReduce编程框架的,MapReduce编程模型的原理是:利用一个输入的key/value对集合来产生一个输出的key/value对集合.MapReduce库的用户用两个函数来表达这个计算:Map和Reduce. 用户自定义的map函数接收一个输入的key/value对,然后产生一个中间key/value对的集合.MapReduce把所有具有相同key值的value集合在一起,然后传递给reduce函数. 用户自定义的reduce函数接收key和相关

解读Google分布式锁服务

背景介绍 在2010年4月,Google的网页索引更新实现了实时更新,在今年的OSDI大会上,Google首次公布了有关这一技术的论文. 在此之前,Google的索引更新,采用的的批处理的方式(map/reduce),也就是当增量数据达到一定规模之后,把增量数据和全量索引库Join,得到最新的索引数据.采用新的索引更新系统之后,数据的生命周期缩短了50%,所谓的数据生命周期是指,数据从网页上爬下来,到展现在搜索结果中这段时间间隔,但是正如Google所强调的,这一系统仅仅是为增量更新所建立的,并

云计算下的数据库 分析 以及部分互联网公司目前采用的新型数据库总结

云计算下的新型数据库技术 摘要:在这个信息化的时代,我们的一举一动都离不开与数据打交道,特别是云计算和大数据时代的到来,使得传统数据库的性能已无法满足海量数据的实时交易查询需求,在性能和成本的双重压力之下,云计算下的数据库需要寻找突破之路. 1.简介: 云计算通过整合,管理和调配分布在互联网中的所有计算资源,以统一的界面同时向用户提供服务.互联网提供的各种计算形式的应用以及提供这些服务的数据中心和软硬件基础设施.提供的服务成为软件即服务(SaaS),数据中心的软硬件基础设施即为云,这种虚拟化资源

谷歌技术"三宝"之BigTable

2006年的OSDI有两篇google的论文,分别 是BigTable和Chubby.Chubby是一个分布式锁服务,基于Paxos算法:BigTable是一个用于管理结构化数据的分布式存储系统, 构建在GFS.Chubby.SSTable等google技术之上.相当多的google应用使用了BigTable,比如Google Earth和Google Analytics,因此它和GFS.MapReduce并称为谷歌技术"三宝". 与GFS和MapReduce的论文相比,我觉得BigT