LINUX.ORG.RU

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

 , , ,


0

3

Состоялся выпуск библиотеки libmdbx v0.12.5 «Динамо» с реализацией высокопроизводительной компактной встраиваемой базы данных класса ключ-значение. Код распространяется под лицензией OpenLDAP Public License.

Выпуск отмечен как стабилизирующий, с исправлением обнаруженных ошибок и устранением недочетов, в день 100-летнего юбилея спортивного общества «Динамо». При этом пользователи отмечают заметное увеличение производительности (видимо в сравнении с версиями v0.11.x).

Исправления:

  • Поправлен экспорт из DSO/DLL устаревших функций, которые заменены на inline в текущем API.
  • Устранено использование неверного компаратора при создании или пересоздании MainDB с флагами/опциями предполагающим использование специфического компаратора (не по-умолчанию).

Мелочи:

  • Удалена дублирующая диагностика внутри node_read_bigdata().
  • Исправлены ссылки в описании mdbx_env_set_geometry().
  • Добавлен отдельный тест extra/upsert_alldups для специфического сценария замены/перезаписи одним значением всех multi-значений соответствующих ключу, т.е. замена всех «дубликатов» одним значением.
  • В C++ API добавлены варианты buffer::key_from() с явным именованием по типу данных.
  • Добавлен отдельный тест extra/maindb_ordinal для специфического сценария создания MainDB с флагами требующими использования компаратора не по-умолчанию.
  • Проведён рефакторинг проверки «когерентности» мета-страниц.
  • Проведена корректировка osal_vasprintf() для устранения предупреждений статических анализаторов.

Кроме традиционного C API, в libmdbx предлагается развитый C++20 API, а также поддерживаемые энтузиастами привязки к языкам: Lua, Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno, Scala.

Исторически libmdbx является глубокой переработкой Lightning Memory-Mapped Database (aka LMDB). По утверждению разработчиков, libmdbx превосходит своего прародителя по надёжности, набору возможностей и производительности. Больше внимание уделяется тестированию и автоматическим проверкам.

Уже более двух лет libmdbx используется проектом Erigon (17% узлов Ethereum и основа для других блокчейнов) в качестве движка хранения, а с сентября 2022 он выбран проектом Reth (реализация Ethereum на Rust, финансируемая Paradigm).

Разработка libmdbx финансируется компанией Positive Technologies и с 2017 года используется в её продуктах. В апреле 2022 года проект перенесен на Gitflic.

Подробности (telegram)

>>> Подробности (gitflic)

anonymous

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 4)

Ответ на: комментарий от Aceler

github, который с тех пор и считается нерукопожатным.

Считается среди кого - среди людей, которые работают на гэбню?

leave ★★★★★
()
Ответ на: комментарий от eternal_sorrow

Теоретическая возможность слива против гарантировано сливаемого кода на GitHub (привет, Copilot)

Werenter ★★★
()
Ответ на: комментарий от leave

Так скажут, что работаешь на Трампа, например. Или на Китай. Ведь прецедент блокирования по политическим мотивам есть.

monk ★★★★★
()
Ответ на: комментарий от Aceler

Не будет закрывать твои проекты по политическим причинам.

Ой, не уверен. Просто инициатор закрытия может быть другой.

Мне более интересно другое. Гит ведь позволяет пушить в несколько верхних реп. Как бы так организовать проект, чтобы он был и на гитхабе, и на другом хостинге, скажем для определённости, сделанном на основе gitea.

То есть как push делать в два места — это вроде бы в документации написано, да я и сам так вроде пару раз делал, когда конфликты github и weblate разруливал. Мне непонятна процедура начального заполнения. Можно ли заставить gitea импортировать уже существующий репозиторий, и если да, то на каком уровне эта процедура доступна, нужно ли для этого быть админом хостинга, например.

hobbit ★★★★★
()
Ответ на: комментарий от guyvernk

Subversion божественен, если тебе не нужна распределённая модель.

hobbit ★★★★★
()
Ответ на: комментарий от leave

Именно так. Не работай с неправильными конторами, не живи в неправильных местах, используй правильные местоимения, впусти в свою жизнь ЦРУ, SJW и зелёных, чтобы они указывали, как тебе жить и разговаривать.

Причём правильные конторы могут стать неправильными в будущем, и что ты будешь делать? Хватать машину времени, чтобы вернуться назад и предупредить? И всё это ради хостинга кода?

Вот я работал с Русбитех, с Базальт СПО и не скрываю этого. Русбитех поставляет свои ОС в армию России, Базальт поставляет в Росгвардию. Сегодня я могу хоститься на гитхабе, а в 182-м пакете санкций Госдеп добавит в список нерукопожатных ещё и Русбитех/Базальт и заморозят мне репу. И?

А в итоге твой код всё равно не будет доступен в некоторых странах и регионах, таких как Крым, Иран, Венесуэла, Северная Корея. Это никак не согласуется с принципами свободного ПО.

Одним словом, хостить свободный проект на github сегодня — это очень плохая идея.

Aceler ★★★★★
()
Ответ на: комментарий от eternal_sorrow

За то будет сливать весь твой код тащ майору.

Будет сливать код товарищу майору, генралу, лейтенанту и рядовому. Будет сливать в ФСБ, ЦРУ, АНБ и Моссаду. Будет сливать русским и американцам, евреям и арабам, индусам и афганцам, китайцам, бразильцам и египтянам.

В отличие от гитхаба, кстати, будет сливать северным корейцам, иранцам, крымчанам, кубинцам и венесуэльцам. А может ещё кому.

Это опенсорс, детка. Тут в этом весь смысл!

Aceler ★★★★★
()
Ответ на: комментарий от hobbit

Ой, не уверен. Просто инициатор закрытия может быть другой.

До сих пор ни одного проекта не закрыли. Закона «о закрытии репозиториев свободного по» я что-то тоже не наблюдаю. А без бумажки они закрыть не могут, сам знаешь.

В любом случае, всё что угодно лучше чем гитхаб.

Aceler ★★★★★
()
Ответ на: комментарий от eternal_sorrow

Причём тут опенсорс? Очевидно речь про приватные репозитории.

Мы обсуждаем libmdbx. Это опенсорс. Откуда взялись приватные репозитарии?

Для приватных репозитариев надо поднимать свой хостинг, это аксиома.

Aceler ★★★★★
()
Ответ на: комментарий от eternal_sorrow

Вы обсуждаете, я - нет.

Маладэц! А ты об этом сказал кому? )

Для приватных репозитариев надо поднимать свой хостинг. Нет смысла хоститься ни на gitflic, ни на github.

Aceler ★★★★★
()
Последнее исправление: Aceler (всего исправлений: 2)
Ответ на: комментарий от eternal_sorrow

Очевидно речь про приватные репозитории.

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

А приватные репозитории, если они действительно приватные :) хранить на стороннем бесплатном хостинге в любом случае плохая идея мне кажется, что евроамериканском, что российском. Наверное, лучше всего gitlab или gitea развернуть самому.

hobbit ★★★★★
()
Ответ на: комментарий от eternal_sorrow

Ну, по всему видать, есть причина;)

UriZzz
()
Ответ на: комментарий от hobbit

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

В чем сложность?

git push github master
git push gitlab master
git push gitflic master
DrBrown
()
Ответ на: комментарий от ratvier

LevelDB это для write-only нагрузки, на чтение оно тормозит и надо свои обвязки вокруг него городить, чтобы работало. Могу допустить, что у сабжа подобной проблемы нет.

Reset ★★★★★
()
Ответ на: комментарий от Reset

У них должны быть разных характеристики по производительности. LevelDB это LSM деревья, а сабж – b-tree.

maxcom ★★★★★
()
Ответ на: комментарий от eternal_sorrow

Он же написал куда - всем подряд через copilot и игнорируя лицензии. Это вообще беспредел, даже не пытаются скрывать.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 2)
Ответ на: комментарий от fluorite

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

firkax ★★★★★
()
Ответ на: комментарий от eternal_sorrow

Майор и так может зайти на сайт и всё там посмотреть, это же публичный репозиторий. А приватные хостить «у кого-то» - заведомо провальная идея, и угрозу тут я бы не в силовых структурах видел а в коммерческих, которые так и норовят продать всё, до чего дотянулись.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Если ты учился писать код по книге, а потом применяешь изученные приёмы в своём проекте, ты нарушаешь лицензию книги?

eternal_sorrow ★★★★★
()
Ответ на: комментарий от eternal_sorrow

Зависит от лицензии книги - обычно нет. Но: если книгу ты при этом ещё и украл из запертого дома её автора (который её написал для себя и не собирался публиковать) - однозначно нарушаешь. А гитхаб сливает код из приватных реп в этот копилот.

firkax ★★★★★
()
Ответ на: комментарий от ratvier

Чем это лучше LevelDB?

В моих тестах LMDB значительно шустрее LevelDB.
Про LMDBX ничего сказать не могу, так как не удалось собрать rpm-пакет (там исходники странные и разработчики еще страннее).

TI_Eugene ★★
()
Ответ на: комментарий от hobbit

В чём проблема добавить два remote?

Создаёшь новую пустую репу на каком-нибудь гитлабе, добавляешь её url в remote и пушишь туда.

Или я не так понял что тебе надо?

WatchCat ★★★★★
()
Ответ на: комментарий от Manhunt

Ждите MithrilDB, автор обещал:

The next version is under active non-public development from scratch and will be released as MithrilDB and libmithrildb for libraries & packages. Admittedly mythical Mithril is resembling silver but being stronger and lighter than steel. Therefore MithrilDB is a rightly relevant name. MithrilDB will be radically different from libmdbx by the new database format and API based on C++17, as well as the Apache 2.0 License. The goal of this revolution is to provide a clearer and robust API, add more features and new valuable properties of the database.

dataman ★★★★
()
Ответ на: комментарий от Aceler

Директор фирмы по обучению и внедрению решений на базе СПО на предприятиях Нижнего Новгорода

У других есть возможность из двух гэбней выбрать не только кровавую, а ты истекаешь завистью.

t184256 ★★★★★
()
Ответ на: комментарий от dataman

автор обещал

Обещать - не значит жениться. На gitflic написано, что "the active development has been suspended"

Manhunt ★★★★★
()
Ответ на: комментарий от dataman

Лучше б он нормальные бенчмарки сделал с современным sqlite и rocksdb.

Эти помимо эмбеданутости еще и в многопоточность умеют. ХЗ чего народ так в leveldb уперся.

Vit ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.