LINUX.ORG.RU

История изменений

Исправление kiverattes, (текущая версия) :

Мне не нужна, например, операция вставки ключа/удаления ключа — это просто избыточно (в ходе чего происходят всякие там сплиты страниц и т.п.)

Сделать желаемое на B-Tree: ключом бы был timestamp изменения объекта. Поднятие из списка наверх: удаление старого ключа-timestamp и вставка этого же объекта с новым ключом-timestamp. Хотя пришлось бы прикручивать что-нибудь, что позволило бы быстро пропускать N первых элементов, а выгребать список я бы стал пробеганием по индексам от больших к меньшим. Но избыточно всё это ради только того, чтобы просто переставить элемент из списка наверх.

B-Tree хорошо, когда весь индекс в память положить нельзя и когда у тебя есть вставки рандомных ключей, да и удаления из B-Tree не особо приветствуются, дыры появляются... В моём случае типичной операцией будет удаление старых ключей и добавление ключа, который больше всех остальных. Это какой-то однобокий паттерн использования B-Tree будет... Он приведёт к тому, что будет много дыр в страницах и постоянно будут выделяться новые страницы. В результате будет такое разряженое-дырявое дерево постоянно растущее на диске...

Исходная версия kiverattes, :

Мне не нужна, например, операция вставки ключа/удаления ключа — это просто избыточно (в ходе чего происходят всякие там сплиты страниц и т.п.)

Сделать желаемое на B-Tree: ключом бы был timestamp изменения объекта. Поднятие из списка наверх: удаление старого ключа-timestamp и вставка этого же объекта с новым ключом-timestamp. Хотя пришлось бы прикручивать что-нибудь, что позволило бы быстро пропускать N первых элементов, а выгребать список я бы стал пробеганием по индексам от больших к меньшим. Но избыточно всё это ради только того, чтобы просто переставить элемент из списка наверх.

B-Tree хорошо, когда весь индекс в память положить нельзя и когда у тебя возможны вставки рандомных ключей и удаления не всегда в B-Tree приветствуются... А в моём случае типичной операцией будет удаление старых ключей и добавление ключа, который больше всех остальных. Этот паттерн использования B-Tree приведёт к тому, что там образуется много дыр в страницах и постоянно будут выледяться новые страницы. В результате будет такое разряженое-дырявое дерево постоянно растущее на диске...