Максимальное и минимальное количество ключей в этом B-дереве - PullRequest
1 голос
/ 07 ноября 2010

Это из домашнего задания:

Предположим, что каждая страница (блок диска) имеет 16 Кбайт, а каждый KVP имеет 8 байт. таким образом мы решили использовать B-дерево minsize (16000/8) / 2 = 1000. Пусть T такое B-дерево и Предположим, что высота Т равна 3. Каково минимальное и максимальное количество ключей что можно хранить в Т? Кратко обоснуйте свой ответ.

Обратите внимание на следующее из-за свойств B-деревьев:
Каждый узел имеет максимум 2000 ключей
Каждый узел имеет не менее 1000 ключей (кроме корневого узла)

У меня проблемы с пониманием того, как память ограничивает количество клавиш. Мне кажется, что поскольку каждая страница имеет 16000 байт пространства и каждая клавиша занимает 8 байт, то каждая страница может хранить 2000 ключей, что является максимальным количеством ключей, которые в любом случае могут храниться на каждом уровне.

Ниже приведены мои расчеты:
Минимальное количество ключей = 1000 (1001) (2) + 1 = 2002001 минимум, как минимум
(Поскольку корень не ограничен наличием как минимум 1000 ключей)
Максимальное количество ключей = 2000 (2001) (2001) = 8008002000 ключей максимум

Я чувствую, что упускаю что-то жизненно важное, поскольку вопрос не может быть таким простым.

1 Ответ

2 голосов
/ 07 ноября 2010

Несколько вопиющий намек: у каждого неконечного узла есть правый и левый дочерние узлы.Кроме того, есть указатели на пары ключ / значение, однако они могут быть сохранены.(1000 кажется большим количеством ...) Подумайте, как вы собираетесь хранить эти 1000+ точек данных.

...