The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

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

29.12.2025 20:41

Проект libmdbx представил новую стратегию развития, одновременно объявив о смене модели разработки и распространения кода. Исходный код libmdbx останется открытым и с качественной бесплатной поддержкой, но теперь разработка будет вестись внутри команды с публикацией результата только в амальгамированной форме. Стратегия развития декларирует движение к давно анонсированному проекту MithrilDB, с поддержкой нескольких форматов БД под фасадом общего API. Явно заявляется о поддержке старых БД, пока это будет необходимо пользователям.

Если раньше в публичном доступе был весь исходный код, включая тестовый фреймфорк и внутреннюю документацию, то теперь доступен только амальгамированный исходный код библиотеки. Обещано, что вскоре будет представлен расширенный пример использования C++ API, который одновременно будет простым smoke-тестом. Причины достаточно подробны объяснены в комментариях встроенных в слайды презентации. В частности, декларируется желание поставлять библиотеку в максимального готовом виде, без зависимостей, необходимых только для её разработки и глубокого тестирования.

Кроме раскрытия уже разрабатываемых и запланированных возможностей libmdbx, в опубликованной стратегии анонсированы основные черты нового формата БД и обеспечиваемые им возможности:

  1. Усовершенствованное префиксное дерево, наложенное поверх дерева Меркла, образуемого базовой структурой B+tree. Структура будет похожа на Patricia Tree, но буквальный формат и технические детали совсем другие.
  2. Поддержка длинных ключей и сжатие префиксов. Сквозная нумерация элементов для точной оценки мощности выборов. Поддержка больших BLOB-объектов в потоковом режиме.
  3. Опциональное использование отображения файла БД в память. Поддержка шифрования и сжатия данных.
  4. Предоставление нового API с интенсивным использованием SWIG для автоматической генерации привязок к востребованным языкам программирования.
  5. Поддержка репликации реализуемой с учётом опыта полученного при разработке ReOpenLDAP.

В ходе очной презентации также было заявлено о намерении попробовать совместить внутри MithrilDB несколько реализаций написанных на разных языках, в частности C, С++ и Rust, обеспечив при этом прозрачное перекрёстное взаимодействие (приложения на С/С++ смогут использовать реализацию на Rust и наоборот).

Из разрабатываемых сейчас возможностей, которые станут доступны в ближайшее время, стоит отметить «Поиск с кэшированием». Суть которого в хранении указателей на данные непосредственно внутрь БД, с предельно быстрой проверки их актуальности. При этом поиск от корня дерева к листовым страницам останавливается, как только доходит до страницы, не изменённой после последней проверки соответствующего элемента кэша. Таким образом, вместо полного поиска по B-tree, выполняется минимально возможное количество действий, в зависимости об объёма изменений после последнего получения данных. Всё вместе обеспечивает кардинальное ускорение до нескольких десятков тысяч раз. В худшем же случае такой поиск с «кэшированием» не медленнее обычного.

  1. Главная ссылка к новости (https://libmdbx.dqdkfa.ru/rele...)
  2. OpenNews: Выпуск встраиваемой СУБД libmdbx 0.13.10
  3. OpenNews: Релиз LDAP-сервера ReOpenLDAP 1.2.0
Автор новости: erthink
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64522-libmdbx
Ключевые слова: libmdbx
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (15) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.9, Аноним (-), 21:32, 29/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Copyright (c) 2015-2025 Леонид Юрьев aka Leonid Yuriev <leo@yuriev.ru>
    >СМЕНА ЛИЦЕНЗИИ (THE LICENSE CHANGE)
    >OpenLDAP Public License → Apache 2.0

    Русский проект, а я то думал иностранный.

    >совместить внутри MithrilDB несколько реализаций написанных на разных языках, в частности C, С++ и Rust

    Совмещать разные языки плохая практика. Это Бэд Практис.

     
  • 1.23, Аноним (23), 22:29, 29/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Что такое амальгамированный исходный код?
     
     
  • 2.25, Аноним (25), 22:31, 29/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Код который завернут в амальгаму.
     
  • 2.30, Аноним (30), 22:45, 29/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    https://sqlite.org/amalgamation.html
    Это придумал не автор SQLite, но идея пошла в массы в основном оттуда.
     
  • 2.36, Аноним (36), 23:06, 29/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Код, который годится только для чтения и сборки, но не для разработки
     
     
  • 3.39, Аноним (30), 23:20, 29/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Леонид, ты?

    >Код, который годится только для чтения

    Нет, он не годится для чтения.
    Как можно читать один сгенерированный файл из десятков тысяч строк.
    Амальгамирование придумали для того чтобы код было проще распространять: из всех файлов кода генерируется всего один файл.
    И, бонусом, компилятор лучше оптимизирует код если он находится в одной единице трансляции.

     

  • 1.26, Аноним (26), 22:37, 29/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Мой комментарий про квазизакрытый код удалили вместе с ответом, что это выдумки и нужно читать комментарии в пдфке. Так вот, я прочитал и там прямо говорится, что переход к такому виду релизов сделан для предотвращения "угона" проекта, а также про платные фичи. Считаю свой комментарий верным и не содержащим выдумок.
     
     
  • 2.27, Аноним (27), 22:41, 29/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Чтоб не форкнули форкнутое.
     
  • 2.34, Аноним (36), 23:03, 29/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Обожглись походу. Тут пару лет назад в комментариях чел писал, у которого тоже богатый дядя форкнул его проект, раскрутил и начал продавать готовые бинарники с перебитым копирайтом
     
  • 2.35, афтар поделия (?), 23:03, 29/12/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Текущая модель разработки достаточно близка к тому, что исходно было и есть в LM... большой текст свёрнут, показать
     

  • 1.29, Аноним (30), 22:42, 29/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >разработка будет вестись внутри команды с публикацией результата только в амальгамированной форме
    >декларируется желание поставлять библиотеку в максимального готовом виде, без зависимостей, необходимых только для её разработки и глубокого тестирования

    Очень странное решение. Читаю как "мы решили закрыть исходный код".

    SQLite, например, поставляется как в виде обычного исходного кода, из которого собирается амальгама (и который можно посмотреть), и в виде амальгамы. Никого это не ущемляет, отличный проект с абсолютно понятным лицензированием.

    Не то чтобы я собирался пользоваться libmdbx, но на месте пользователей крепко бы призадумался. Сейчас есть масса альтернатив, разработчики которых не ведут себя странно.

     
     
  • 2.33, Аноним (36), 23:01, 29/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Открытый код давно перешёл в разряд только для чтения; подумай об этом на досуге
     
  • 2.40, афтар поделия (?), 23:24, 29/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Читаю как "мы решили закрыть исходный код".

    Вы не читаете, а (пардон) озвучиваете неверное впечатление.

    1. Де-факто за 10 лет других разработчиков не появилось, аналогичная картина и в LMDB. Причины пояснены в комментариях к презентации (очень сложно и трудно вникать). Поэтому код не особо кому-то нужен, а если нужен, то он и доступен, и можно присоединиться к разработке.

    2. Пользователям нужен готовый к использованию код, а не куча-мала с тонной зависимостей. А поставка тестов требует их поддержки.

    3. У SQLite другая ситуация, главным образом из-за щедрого спонсирования и обеспечения интересов спонсоров. В том числе, для страховки спонсоров от всяческих неприятностей, разработчиков обязывают передавать код в общественное достояние. Если кто-то (вдруг) предложит обеспечить аналогичные финансовые условия, то я согласен ;)

    4. Код проекта доступен и обеспечен первоклассной бесплатной поддержкой, в этом плане я действительно веду себя странно (как и многие мэинтейнеры не прошу денег).

     

  • 1.37, Стакан (?), 23:11, 29/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Впервые слышу. Земля пухом, чо.
     
  • 1.38, Аноним (36), 23:16, 29/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Хм, забавно. Откройне профиль юзера, который отправил новость. Там фиepический зeтник и вaтник в вакyyме.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру