struct Data1 { int Key; // 4 bytes int Foo; // 4 bytes int Bar; // 4 bytes };
struct BTreeNode { int NumKeys; // num keys in this node Data1 Keys[MAX_KEYS]; // key is in a struct BTreeNode *Children[MAX_CHILDREN]; // "pointers" to children };
Calculations:
4096 (page size) - 4 (NumKeys) - 4 (First left pointer) = 4088 4088 / 16 (Data + right pointer) = 255.5 = 255 keys/data per page