00:01
好,介绍完读写流程之后呢,最后是文件的合并啊,嗯,由于这个写缓存吧,每次刷写呢,都会生成一个新的h fair啊,它经过不断的刷写呢,就会生成大量的一个文件,如果文件数过多的话呢,那你读起来呢也不是很方便啊,单独读一个文件是最方便的,为什么有布隆过滤器对不对,有索引文件个数越多越不方便啊,所以呢,我们会定期的进行文件的一个合并啊。关于文件的合并呢,在h base里面有两种啊,一个叫小合并,一个叫大合并,它名字就叫小合并和大合并啊。如果是小合并的话呢,它是将临近的若干个文件合并成一个较大的文件啊,默认的是三个啊,咱们接下来呢,会介绍详细的小合并的一个机制啊,如果是小合并呢,它会清理掉过期的数据和删除的数据啊,但是呢,只能是部分的啊,没有办法全部清除掉啊。那如果是大合并的话呢,它会将一个story下面的所的h fair呢全部合并,合并成一个大文件啊,全部合并成一个文件,这样的话能够清理掉所有的过期和删除的数据啊,那数据呢,诶,冗余的数据都被删除掉了,那你下次再读的时候呢,那当然是更快一点了啊,这也是一个非常重要的优化啊,不要去把这种机制呢给关掉,默认都是开启的,如果是大合并的话呢,它默认是七天一次啊,你可以去修改这个时间,或者说呢,你手动去控制它多长时间去执行,但是一定要记得去执行啊,你不要说你一次大合并都不操作啊,那显然是不对的,对不对。
01:40
好,我们介绍完之后呢,来一起来看一下图。好,图纸里面呢,给我们展示了文件的刷写,以及大合并和小合并,文件的刷写呢,就是region控制下的一个memory store对应的一个memory store写缓存,每次flash刷写到HDL上面一个文件啊,我这里画的文件呢,哎,它需要有一个时间顺序对不对?哎里边呢也会有不同的操作,像这些就是写入,像这个底delete特奥明显是删除对不对,它有一个时间顺序啊,左边是新的,右边是旧的,跟这个箭头是一致的啊,这是很早之前刷写下来了,这个是最新刷写下来的啊,所以这个年龄啊,它其实什么是越活越年轻,看到没有这新的呢,年龄反倒是写入了18对吧?啊,祝大家呢也是永远18岁啊。
02:29
好,这边呢是比较早的啊,那之前呢是A级是23啊,好对应这么一个刷写过程呢,每一次都下来一个h fair啊,那对应的我们来对它操作一个小合并和大合并,那如果是小合并的话呢,它是把相邻的文件给合并到一起啊,具体的合并就是咱们等一下讲,先告诉大家合并之后它会变成什么样的,那如果是前三个文件合并在一起的话,它里面有什么呢?有一个19,这个是旧的,以之前的数据,时间戳呢要更老一点,这个是新的时间戳更大一点,好中间呢有一个删除,那么它在合并完这么三个数据之后呢,最终会保留下来,A18,还有一个delete奥,这个delete奥一定要保留下来啊,一定要保留下,因为DELETE2啊,它本身也是一个cell。
03:16
你这个delete特表示的是当前时间及以前所有的一个版本的数据全部删除掉,对不对,Delete特删除所有版本啊,那在这个删除所有版本的时候呢,它只能删除现在合并的文件里面的A级19,那本质上的这个20 22 23也应该删除掉,但是你小合并你不知道前面有哪些数据就会被先保留下来啊,后面这个20和21,那理所当然的保留一个20,好,这叫小合并啊。只合并相邻的几个文件,它在删除的时候呢,或者说啊,新版本替代旧版本去掉的时候,删除冗余的时候也只会删除部分,当你在执行大合并的时候。
04:00
哎,执行一个大合并的时候,它会把整个这store里面所有的文件全部合并到一起啊,那这个delete奥呢,就会生效delete奥会把前面的数据呢全部给删除掉,最终只保留一个A18,那最后保留一个A18的时候,可以看到它delete特奥自己这么一个cell也会被删除掉啊,自己这个cell也会被删除掉,因为没有意义了嘛,这个执行大合并的时候,Delete delete这些东西呢,都会被自己给自己给清除。清除掉啊,因为都变得没有意义了,已经执行过删除的一个操作了,好那这个呢,就是我们的文件的一个合并啊,大合并和小合并一个整体的介绍。
我来说两句