首页 > 代码库 > BigTable之SSTable

BigTable之SSTable

  在BigTable中,数据的存储及索引被分为了三个层次,其中SSTable是数据最终在磁盘上的存储形式,SSTable的全称叫做Sorted String Table,是一个排好序的kV形式的数据的集合,SSTable的结构如下图所示:

  

  左边一个图是SSTable的结构,SSTable由多个DataBlock,多个MetaBlock,一个IndexBlock及一个footer组成,数据的真正存储是在datablock中,其他的block存储的是一些管理数据,比如footer中存的是metaBlock以及indexBlock的位置、SSTable的魔鬼数字等,indexBlock是存的是dataBlock的索引,每个dataBlock的索引是它上一个dataBlock的最后一个数据的key,MetaBlock存储的是FilterBlock的位置信息等。

  右边的图是datablock的结构信息,datablock中包含了格式为key-value-crc的数据信息,包含了压缩字段record以及压缩数量。

  一个数据写入SSTable的流程如下:

               

  数据的查询流程如下:

      

  针对SSTable的插入和查询流程就到这,至于更新和删除的流程下次分析。

 

BigTable之SSTable