Open windflowerly opened 3 months ago
另外,key可以自定义类型吗?
可以,不过你需要计算一下每个结点的空间大小
我先看下代码,如有不懂的地方,还要叨扰。
请问下,节点空间计算在哪里,没找到对应的代码。
代码中的node是不是对应一个block。 然后计算一个block中,存放多少个key-value
参见bplustree.h
定义空间大小由BPLUS_MAX_ENTRIES
以及BPLUS_MAX_ORDER
决定,而节点内部寻址在bplustree.c
里面定义。
#define data(node) ((long *)(offset_ptr(node) + _max_entries * sizeof(key_t)))
#define sub(node) ((off_t *)(offset_ptr(node) + (_max_order - 1) * sizeof(key_t)))
其中_max_entries
和_max_order
都是由bplus_tree_init
函数计算的
请问value可以自定义类型吗?