Дэвид Сигло, директор по управлению продуктами для Berkeley DB здесь.Как правило, мы рекомендуем людям задавать вопросы на форумах Berkeley DB .Там вы найдете большое сообщество активных разработчиков приложений Berkeley DB.
Да, Berkeley DB (оригинальный продукт на C) имеет методы доступа B-Tree, Hash, Queue и Recno.Berkeley DB Java Edition поддерживает только B-Tree.Основная причина этого заключается в том, что около 99% наших пользователей используют B-Tree для хранения, а Hash используется только небольшим набором приложений.
Некоторые полезные технические подробности по этой теме:
- Хеш особенно полезен для людей, у которых огромный набор данных и очень маленький объем доступной кэш-памяти.В этом конкретном сценарии B-Tree может потребоваться несколько операций ввода-вывода для извлечения страниц внутреннего индекса (которые не помещаются в кэш), а затем для извлечения записи.Хэш обычно может получить доступ к записи данных с помощью одного ввода / вывода.
- Хеш, как правило, бесполезен, если вы хотите получить последовательный доступ к вашим данным или разрешить дублирование, поскольку в хэш-индексе нет неявного упорядочения.
- Большинство приложений имеют достаточно доступной кэш-памяти для хранения внутренних узлов B-дерева, а также наиболее часто используемых записей данных.В этом гораздо более распространенном сценарии производительность B-tree и Hash будет практически одинаковой.
- В течение последнего года команда Berkeley DB Java Edition очень тесно сотрудничала с заказчиками и разработчиками приложений, использующими очень большие наборы данных (в 250 ГБ - низкий диапазон туберкулеза).В частности, они сосредоточились на том, как максимизировать эффективность кэша, улучшить алгоритмы удаления кэша и минимизировать влияние сборки мусора Java.Мы обнаружили, что BDB JE 4.1 работает намного лучше с точки зрения управления кэшем и его эффективности, особенно для наборов данных, которые превышают доступный кэш.Для получения дополнительной информации об этом изменении см. Журнал изменений BDB JE 4.1.7 на странице загрузки Berkeley DB.
- Для получения дополнительной информации о методах доступа Hash против B-Tree в Berkeley DB см. Главу 2 Справочного руководства BDB (Выбор метода доступа).
Я надеюсь, что это было полезно.
С уважением,
Дэйв