The OpenNET Project / Index page

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

Выпуск встраиваемой СУБД libmdbx 0.13.2

14.12.2024 10:07

Опубликован выпуск библиотеки libmdbx 0.13.2 (MDBX) с реализацией высокопроизводительной компактной встраиваемой базы данных класса ключ-значение. Код libmdbx распространяется под лицензией Apache 2.0. Поддерживаются все актуальные операционные системы и архитектуры, а также российский Эльбрус 2000. Для libmdbx предлагается развитое API для C++, а также поддерживаемые энтузиастами привязки к языкам Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno, Scala.

Исторически libmdbx является глубокой переработкой СУБД LMDB и превосходит своего прародителя по надёжности, набору возможностей и производительности. В сравнении с LMDB, в libmdbx большое внимание уделяется качеству кода, стабильной работе API, тестированию и автоматическим проверкам. Поставляется утилита проверки целостности структуры БД с некоторыми возможностями восстановления. Технологически libmdbx предлагает ACID, строгую сериализацию изменений и неблокирующее чтение с линейным масштабированием по ядрам ЦПУ. Поддерживается автокомпактификация, автоматическое управление размером БД, оценка объёма выборок по диапазонам (range query estimation).

Основные изменения:

  • Ускорено обновление GC при возврате/помещении списков страниц в сложных сценариях. Доработан и активирован ранее отключённый экспериментальный режим корректирующей обратной связи. Этим принципиально улучшилась сходимость (сократилось количество повторных попыток), а также устранён дефект приводящий к "зацикливанию" при фиксации транзакций (с возвратом ошибки MDBX_PROBLEM) в редких специфических условиях.
  • В сборочных скриптах CMake включён стандарт C23.
  • Добавлены T-макросы для парных функций char/wchar_t.
  • В C++ API добавлена поддержка вложенных пишущих транзакций.
  • Выполнен переход на вторую редакцию спецификации семантического версионирования ("Semantic Versioning 2") и обеспечен экспорт информации о версии в VERSION.json.
  • Для воспроизводимости сборок добавлена поддержка переменной окружения SOURCE_DATE_EPOCH. Поддержка MDBX_BUILD_TIMESTAMP сохранена и данная переменная имеет приоритет.
  • Добавлена возможность указывать дополнительную информацию о сборке libmdbx через опцию MDBX_BUILD_METADATA. Сейчас задаваемая информация просто включается внутрь библиотеки в качестве значения mdbx_build.metadata, а в дальнейшем также будет использоваться при формировании пакетов и т.п.
  • Добавлено логирование ошибок, возвращаемых из API. Теперь для этого достаточно задать уровень логирования MDBX_LOG_DEBUG (для логирования ошибок за вычетом MDBX_NOTFOUND) или MDBX_LOG_TRACE (для логирования всех ошибок, а также MDBX_RESULT_TRUE).
  • Изменение поведения:
    • Добавлен метод mdbx::cursor::get_multiple_samelength() и переименован mdbx::txn::put_multiple_samelength().
    • Для единообразия C++ API при выполнении операции MDBX_GET_MULTIPLE теперь также возвращается значение самого ключа.
    • Для размерных констант mdbx::env::geometry базовый тип изменён с беззнакового size_t на знаковый intptr_t.
    • Выбор в пользу использования ntdll вместо CRT теперь делается только при явном отключении C++ API.
    • Обеспечено освобождение памяти сброшенных/прерванных читающих транзакций, передаваемых в mdbx_txn_commit(). Соглашение по API требует чтобы такие транзакции освобождались посредством mdbx_txn_abort(), из-за чего функция mdbx_txn_commit() возвращала ошибку в таких случаях, не разрушая сами транзакции. Это приводило к утечкам памяти из-за ошибок в приложениях, что побудило изменить поведение.
    • Использование макроса __deprecated_enum, если он определён.
    • При сборке посредством CMake выбор стандарта языка C теперь выполняется с учётом CMAKE_C_STANDARD.


  1. Главная ссылка к новости (https://gitflic.ru/project/ert...)
  2. OpenNews: Выпуск встраиваемой СУБД libmdbx 0.13
  3. OpenNews: Релиз LDAP-сервера ReOpenLDAP 1.2.0
  4. OpenNews: Доступен ReOpenLDAP 1.1.6, форк проекта OpenLDAP
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/62403-libmdbx
Ключевые слова: libmdbx
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (40) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:11, 14/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    Ну это комбо сомнительные преимущества и более чем сомнительный автор. Поделка для очень узкой аудитории.
     
     
  • 2.3, Аноним (3), 10:39, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >и более чем сомнительный автор

    А чем автор сомнителен? (просто не в курсе)

     
     
  • 3.8, Аноним (1), 10:51, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Автор немного повернут на теории заговора что американцы плохие и хотят лично его съесть скажем так.
     
     
  • 4.27, Аноним (-), 13:01, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Автор немного повернут на теории заговора что американцы плохие и хотят лично его съесть скажем так.

    И при этом пишет базы данных. И в чем же заключаются ваши сомнения? Вы хотите вызвать недоверие к человеку на основании чего?

     
  • 3.9, Аноним (9), 10:52, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Три слова: Top Gun DPI
     
     
  • 4.11, Аноним (9), 10:56, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вернее два: TopGun DPI.
     
     
  • 5.14, мимо проходил (?), 11:34, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Строитель плохой потому-то построил забор ?

    И роскомнадзор сидит на совсем другом.

    Чувак по-ходу срубил бабла, чуток хайпанул на highload и пошел дальше.

     
  • 5.16, Имя (?), 11:59, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Теперь это называеся PT NGFW.
     
  • 5.19, Имя (?), 12:17, 14/12/2024 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
     
  • 6.33, Вы забыли заполнить поле Name (?), 13:34, 14/12/2024 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
     
  • 7.46, Аноним (-), 14:30, 14/12/2024 Скрыто ботом-модератором     [к модератору]
  • –3 +/
     
  • 6.43, Аноним (43), 14:20, 14/12/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.5, Имя (?), 10:41, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Почему для узкой? Это персисентная key-value database, с полноценным acid, такое много где нужно. Можно, конечно, реализовывать такое хранилище через SQL и тащить с собой sqlite или postgresql, но это как гвозди кирпичом заколачивать: медленно, громоздко и неудобно..
     
     
  • 3.22, Ilya Evseev (?), 12:36, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Есть RocksDB, её недостаточно?
     
     
  • 4.25, Аноним (1), 12:48, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У роксов нескрепный автор.
     
     
  • 5.31, Имя (?), 13:18, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну, если автору libmdbx в комментах решили приписать "грех" участия в разработке одной (из огромного ассортимента) DPI, то у автора rocksdb список грешков пошире, мягко говоря - https://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B8

    Если у тебя обострение этичности, то выбор между этими двумя очевиден, в общем-то :)

    А про важность скрепности иди расскажи в lkml

     
  • 4.26, Имя (?), 12:57, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    1. У них под капотом абсолютно разные алгоритмы. У RocksDB это append-only файлы и compaction (= перекопирование данных с диска на диск), у libmdbx это b+tree. Логично ожидать, что на разных нагрузках они будут вести себя сильно по-разному (и наверняка будут случаи, когда одна намного лучше другой, и наоборот). То есть конкретно эти две СУБД не являются свосем уж прямыми конкурентами друг другу, у каждой своя "оптимальная" подниша.

    2. Конкуренция - это очень хорошо. Пусть расцветают сто цветов, пусть соперничают сто школ.

     
     
  • 5.40, Аноним (1), 14:12, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Кроме синтетических тестов есть ещё много аспектов которые определяют качество продукта.
     
     
  • 6.44, Аноним (44), 14:23, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Кроме синтетических тестов есть ещё много аспектов которые определяют качество продукта.

    Как-раз поэтому libmdbx используется в Ethereum (Reth, Erigon, Silkworm) и в коммерческих продуктах Positive Technologies.

     
  • 5.59, Аноним (-), 16:05, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Конкуренция - это очень хорошо. Пусть расцветают сто цветов, пусть соперничают сто школ.

    Расскажите это в Вавилоне

     
  • 4.34, Вы забыли заполнить поле Name (?), 13:36, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Как дети. Уже 20 раз объясняли про сравнение. И да, ты пойди собери этот роксдб. Сколько по времени собирается и какой размер на выходе? Многовато для встраиваемой бд.
     
     
  • 5.37, Аноним (1), 14:08, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Встраиваемой в управление кофеваркой? Возможно.

    Встраиваемый в десктоп приложение? В самый раз.

    Зато у тех же роксов есть гарантия что в автору не придут местные люди с бутылочкой огненной воды и не скажут в каком месте надо выходит за границы буфера.

     
     
  • 6.42, Имя (?), 14:17, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Зато у тех же роксов есть гарантия что в автору не придут местные люди с бутылочкой огненной воды и не скажут в каком месте надо выходит за границы буфера.

    У роксов есть гарантия, что они сотрудничают с неместными людьми, и любые пожелания неместных людей будут нижайше исполнены. Facebook - участник PRISM.

     
  • 2.15, мимо проходил (?), 11:37, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну это комбо сомнительные преимуществ

    А какие там "комбо" ?

    Вроде-бы ровно наоборот и супер-стабильно.
    Где-то читал что весь Ethereum на этом движке.

     
     
  • 3.17, Аноним (1), 12:10, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Доклад отклонен https://highload.ru/moscow/2022/abstracts/9342 Я так давно долго не смеялся теперь живот болит.
     
     
  • 4.23, Имя (?), 12:42, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Доклад отклонен https://highload.ru/moscow/2022/abstracts/9342 Я так давно долго не
    > смеялся теперь живот болит.

    Автор посмечался первым и фактически сам отказался https://t.me/libmdbx/3854
    и я с ним согласен, хайлоад превратился в жеванное стендап-шоу.

    А в Ethereum этот движок действительно используется, причем во всех развивающихся клиентах.
    Странно что автор не кричит об этом на каждом углу.

     
     
  • 5.24, Аноним (1), 12:47, 14/12/2024 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
     
  • 6.29, Имя (?), 13:05, 14/12/2024 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 2.71, _ (??), 19:21, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну это комбо сомнительные преимущества и более чем сомнительный автор.

    Молодец, ещё 100500 таких сообщений и на юзанную обёртку от бургера заработаешь :)
    А скорее на юзанную резинку, для таких как ты - well deserved outcome :)

    > Поделка для очень узкой аудитории.

    О, да ты и в высоконагруженных базах экперт?!?!?
    И всё же - спили мушку :) Ну и кастрюлю сними, если не приросла ещё...

    А по топику:
    База вышла - то что надо! Но надо в основном перцам размера билайна\ростелекома и других больших ребят. Для любой моей наколенной поделки (к примеру) - работать будет, но оно и на чём есть работает ;-) Тут размер - таки решает.

    Автору удачи, проектов и честно заработанных деньжат, денег и деньжищЪ(С)! :)

     

  • 1.30, Аноним (30), 13:12, 14/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как оно относится к Berkeley DB? Должны быть конкурентами, но я ни где не всречал сравнения.
     
     
  • 2.39, Имя (?), 14:09, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В интернетах так пишут - "For embedded use, LMDB and its spin-off libMDBX are a lot faster than BDB, but have neatly-compatible APIs. (The guy who built LMDB has a paper on how his project, OpenLDAP, had so many performance problems with BDB that he wrote LMDB as a replacement.)" И приводят ссылку на статью - https://lobste.rs/s/avljlh/what_s_big_deal_about_embedded_key_value

    В статье намеряли огромный выигрыш в производительности: где-то в 2-3 раза, где-то на порядок. Нужно понимать, что это статья от авторов LMDB, и перф они сравнивают на той нагрузке, под которую LMDB целенаправленно задумывался.

     
  • 2.68, Аноним (44), 18:21, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    libmdbx является сильнейшей переработкой LMDB А LMDB сделали на замену Berkeley... большой текст свёрнут, показать
     

  • 1.35, Аноним (35), 13:43, 14/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    mdbx.h++

    Ну хоть так выделиться. Он не тиктокер?

     
  • 1.38, ijuij (?), 14:08, 14/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Есть ли какие-то сравнения этой СУБД с SQLite? 🤔 Чем она лучше или хуже?
     
     
  • 2.47, fuggy (ok), 14:31, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    SQLite - это реляционная SQL база, а libmdbx - key-value хранилище. То есть кроме того что они встраиваемые и ACID, больше общего у них нет.
     

  • 1.56, adolfus (ok), 15:51, 14/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Зачем какой-то кривой лисапед, если есть нормальная, зарекомендовавшая себя во всех отношениях Berkeley DB? Причем версии 18 против 0.
     
     
  • 2.64, Аноним (44), 16:55, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В том-то и дело, что Berkeley DB так себя зарекомендовала, что еще 20 лет назад все кинулись писать свои движки хранения.

    У некоторых это получилось.

     

  • 1.60, Аноним (-), 16:12, 14/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А mdb, которая была на Delphi, простите не помню как точно называлась - имеет что-то общее с этой разработкой?
     
     
  • 2.69, Аноним (69), 18:22, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    mdb - старый формат хранения Microsoft Access.  Думаю, он никак не относится к этой теме
     
  • 2.70, Аноним (44), 18:22, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, ничего общего.

    "mdb в Delphi" это Microsoft Access.

     

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



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

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