类介绍
BlockBuilder主要负责构造sstable文件中的block;
数据结构介绍
一条记录(record)是由key value组成,那么key value在block中是怎么组织的呢?
shared_bytes: 代表与上一个记录的key共享的字节数,采用varint32存储;具体什么意思呢,比方说,上一条记录的key是"abcdefg",当前key是"abcdmrt",那么共享的就 是"abcd",那么shared_bytes=4,即共享的就是4个字节;注意这里的共享之的是从第一个字节开始比较;
unshared_bytes:代表与上一个记录,不共享的字节数,采用varint32存储;根据上面的例子,就是“mrt”,也就是unshared_bytes=3,不共享的字节数为3个字节;
value_length:value的长度,采用varint32存储;
key_delta:当前key 除去与上一个记录key共享的部分,即unshared的部分,继续上面的例子就是“mrt”;
value:value的内容;