1.常量与变量的定义
1.1. 常量定义部分:
定义的常量 | 数值 | 注释 | 含义 |
---|---|---|---|
VALSTART | 0 | val offset in acct | value的地址(kvi+VALSTART) |
KEYSTART | 1 | key offset in acct | key的地址(kvi+KEYSTART) |
PARTITION | 2 | partition offset in acct | partition的地址(kvi+PARTITION) |
VALLEN | 3 | length of value | value的长度(kvi+VALLEN) |
NMETA | 4 | num meta ints | 元数据的数量 |
METASIZE | 16 | size in bytes | 一个元数据块包括四个int类型的元数据,大小为16个字节 |
1.2. 变量定义部分:
定义的变量 | 注释 | 含义 |
---|---|---|
环形缓冲区 | ||
byte[] kvbuffer | main output buffer | 环形缓冲区数组 |
int bufferRemaining | / | 溢写阈值内的缓冲区剩余空间 |
int spiller | / | 溢写的百分比 |
int softLimit | / | 进行溢写阈值(spiller*kvbuffer.length) |
元数据 | ||
IntBuffer kvmeta | metadata overlay on backing store | 键值对的元数据 |
int kvstart | marks origin of spill metadata | 指向元数据块中的第一份元数据 |
int kvend | marks end of spill metadata | 指向元数据块中的最后一块元数据 |
int kvindex | marks end of fully serialized records | 指向下次写入元数据的地址 |
键值对 | ||
int equator | marks origin of meta/serialization | 元数据与键值对的分界线 |
int bufstart | marks beginning of spill | 键值对开始的地址(溢写开始的地址) |
int bufend | marks beginning of collectable | 键值对结束的地址(溢写结束,收集开始的地址) |
int bufmark | marks end of record | 当前键值对的结束地址 |
int bufindex | marks end of collected | 下一份kv数据对的写入地址 |
int bufvoid | marks the point where we should stop reading at the end of the buffer | 写出数据的截至地址 kvbuffer.length |