Адрес: ул. Б. Очаковская 32 Москва Россия
Наши официальные канал и чат в telegram
Поднимем Devuan на вершину Distrowatch! Просто перейдите по ссылке один раз в день.

Новая стратегия развития проекта libmdbx

Новости собранные из разных RSS источников
Аватара пользователя
root:#
Site Admin
Сообщения: 1155
Зарегистрирован: Вт ноя 08, 2022 3:27 pm
Благодарил (а): 47 раз
Поблагодарили: 26 раз

Новая стратегия развития проекта libmdbx

Сообщение root:# »

Новая стратегия развития проекта libmdbx
Проект libmdbx представил новую стратегию развития, одновременно объявив о смене модели разработки и распространения кода. Исходный код libmdbx останется открытым и с качественной бесплатной поддержкой, но теперь разработка будет вестись внутри команды с публикацией результата только в амальгамированной форме. Стратегия развития декларирует движение к давно анонсированному проекту MithrilDB, с поддержкой нескольких форматов БД под фасадом общего API. Явно заявляется о поддержке старых БД, пока это будет необходимо пользователям. Если раньше в публичном доступе был весь исходный код, включая тестовый фреймфорк и внутреннюю документацию, то теперь доступен только амальгамированный исходный код библиотеки. Обещано, что вскоре будет представлен расширенный пример использования C++ API, который одновременно будет простым smoke-тестом. Причины достаточно подробны объяснены в комментариях встроенных в слайды презентации. В частности, декларируется желание поставлять библиотеку в максимального готовом виде, без зависимостей, необходимых только для её разработки и глубокого тестирования. Кроме раскрытия уже разрабатываемых и запланированных возможностей libmdbx, в опубликованной стратегии анонсированы основные черты нового формата БД и обеспечиваемые им возможности:
  • Усовершенствованное префиксное дерево, наложенное поверх дерева Меркла, образуемого базовой структурой B+tree. Структура будет похожа на Patricia Tree, но буквальный формат и технические детали совсем другие. Поддержка длинных ключей и сжатие префиксов. Сквозная нумерация элементов для точной оценки мощности выборов. Поддержка больших BLOB-объектов в потоковом режиме. Опциональное использование отображения файла БД в память. Поддержка шифрования и сжатия данных. Предоставление нового API с интенсивным использованием SWIG для автоматической генерации привязок к востребованным языкам программирования. Поддержка репликации реализуемой с учётом опыта полученного при разработке ReOpenLDAP.
В ходе очной презентации также было заявлено о намерении попробовать совместить внутри MithrilDB несколько реализаций написанных на разных языках, в частности C, С++ и Rust, обеспечив при этом прозрачное перекрёстное взаимодействие (приложения на С/С++ смогут использовать реализацию на Rust и наоборот). Из разрабатываемых сейчас возможностей, которые станут доступны в ближайшее время, стоит отметить «Поиск с кэшированием». Суть которого в хранении указателей на данные непосредственно внутрь БД, с предельно быстрой проверки их актуальности. При этом поиск от корня дерева к листовым страницам останавливается, как только доходит до страницы, не изменённой после последней проверки соответствующего элемента кэша. Таким образом, вместо полного поиска по B-tree, выполняется минимально возможное количество действий, в зависимости об объёма изменений после последнего получения данных. Всё вместе обеспечивает кардинальное ускорение до нескольких десятков тысяч раз. В худшем же случае такой поиск с «кэшированием» не медленнее обычного.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64522