BigTable的数据插入不仅仅指对SSTable的数据插入,它是日志操作、内存中数据的更新以及生成SSTable的一个操作的集合,BigTable中数据的操作首先在内存中进行,它会先将插入的动作和数据写入到日志文件中,然后更新内存中数据的状态,如果内存中的数据量达到一个阈值,则将内存中的数据清空,以SSTable的格式写入到磁盘中,它的操作流程图如下:
BigTable数据读取的过程也很容易的可以想象出来,首先,程序会找到需要查找的数据所在的表的所有Tablet文件,程序会找需要查找的key再内存中的记录以及在SSTable中的记录,将最后的结果合并,返回给用户。判断某个key所对应的记录是否在SSTable中采用的是BloomFilter,所有,可以假设每个SSTable在Tablet中的索引里面会附加上该SSTablet的BloomFilter信息,这样,方便数据的定位。
时间: 2024-10-27 00:19:07