URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 134766
[ Назад ]

Исходное сообщение
"Выпуск встраиваемой СУБД libmdbx 0.13"

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

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=61830


Содержание

Сообщения в этом обсуждении
"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено Аноним , 08-Сен-24 23:08 
Скажите, есть ли какой-то смысл использовать подобные db вместо, например, sqlite?
В чём преимущество?

"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено мяя , 08-Сен-24 23:12 
Скорость, компактность реализации.

"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено Совершенно другой аноним , 08-Сен-24 23:24 
Ну, как-бы, это разные вещи. В SQLite доступ посредством SQL, табличное представление данных, а в тут - доступ спец-функциями и представление данных "ключ-значение".

"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено Аноним , 08-Сен-24 23:39 
В плане представления данных разница не такая уж большая между SQL и ключ-значение. В SQL базах строки таблиц это тоже по сути поле-ключ и всё остальное (остальные поля).
Но SQL сильно упрощает создание запросов и управление структурой db - удаление/добавление таблиц/индексов, задание связей между таблицами. Для баз ключ-значение больше труда нужно для создания цепочек вызовов функций, а результат тот же.
Явный недостаток SQL - то что движок сложнее.

"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено Карлос Сношайтилис , 09-Сен-24 02:37 
SQL – это диалект.
Его могут поддерживать разные, по типу, бд, например, строчные или колоночные. А у них сильно разные принципы хранения.

"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено Аноним , 10-Сен-24 19:56 
SQL - это не диалект а язык. Диалекты у его реализаций.

"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено Самый умный аноним , 08-Сен-24 23:28 
> В чём преимущество?

gitflic.ru


"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено OpenEcho , 09-Сен-24 13:30 
> gitflic.ru

Это все равно что ткнуть в github.com


"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено Аноним , 08-Сен-24 23:38 
Если вас устраивает условный sqlite, то подобные движки вам не нужны.

Преимущество же в меньших накладных расходах и, соответственно, более высокой производительности и/или меньшем потреблении ресурсов.

Например, Ethereum сейчас сидит на libmdbx, а Monero на LMDB.
Упомянутый sqlite такое не потянет, будет в 1000 раз медленнее и памяти будет жрать раз в 100 больше.


"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено нах. , 09-Сен-24 01:47 
"показатели достигли потолка, с которого первоначально и были взяты"(c)

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


"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено Аноним , 09-Сен-24 03:36 
1.
Автор LMDB в 2010-2014 публиковал результаты бенчмарков. В том числе он сделал sqlightning (пересадил sqlite на LMDB), на простых тестах там _местами_ разница более 20 раз.

2.
У Erigon был блог, где Alex Sharp описывал приключения по выбору движка БД, включая многие эксперименты.
В результате они остановились сначала на LMDB, а когда начались проблемы перешли на MDBX.

3.
Команда Paradigm (разработчики Reth) после "заимствования" кода у Akula, несколько раз пытались соскочить с libmdbx по идейно-политическим соображениям. Но так и не смогли из-за "catastrophic performance degradation", несмотря на лимоны зелени в бюджете.

--

Короче, в подходящих сценариях и при правильном использовании, libmdbx точно может быть до 20-25 раз быстрее sqlite. А на масштабах Ethereum выигрыш может быть намного больше, просто из-за большого кол-ва данных (и работе unified page cache).

Другое дело, что не все сценарии подходящие и большинство пользователей/разработчиков никогда не заметят разницы между 0.001 и 0.00001 секунд. Ну и использование SQL гораздо комфортнее чем возня с key-value.


"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено llolik , 09-Сен-24 07:13 
> Ну и использование SQL гораздо комфортнее чем возня с key-value

От того же автора есть libfpta, которая построена на libmdbx, и по-сути реализует классические таблицы над key-value libmdbx.

https://gitflic.ru/project/erthink/libfpta


"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено Gemorroj , 09-Сен-24 09:47 
это же пох.  с ним говорить вообще бесполезно. он конченный

"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено Аноним , 09-Сен-24 11:09 
почему? польза есть, вон сколько фактов интересных написали в ответ

"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено _ , 09-Сен-24 16:46 
> почему?

Потому что пЫонеров чмырит "с особым цЫнизмом"(С) :-)
Вон слёзки как капают у некоторых...

А по профессии он не чаще других загонялся и гнал пургу :) Но это мы все могЁм, включая меня :)


"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено OpenEcho , 09-Сен-24 13:04 
Помоему в данном, конкретном случае его коммент на фразу: "будет в 1000 раз медленнее и памяти будет жрать раз в 100 больше." очень даже уместен. Это же цифры правда с потолка, в отличии от follow up на пох пост

"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено Аноним , 09-Сен-24 12:55 
Делать бенчмарки, сравнивающие key-value хранилище c sql-бд - вот что полностью характеризует человека и все его поделки.

"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено Аноним , 09-Сен-24 14:49 
Ну, на подобном сравнивании теплого с мягким вырос целый Фороникс.
Не смотря на присущий скептицизм при анализе результатов проводимых им тестов,
он все же сделал много и полезного (те же тесты от фороникса).

"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено Аноним , 09-Сен-24 21:04 
> Делать бенчмарки, сравнивающие key-value хранилище c sql-бд - вот что полностью характеризует человека и все его поделки.

Так вы даже не поняли написанного.

Там сравнивались НЕ key-value с sql, а оригинальный sqlite (с собственным b-tree) и sqlightning (sqlite, в котором исходный b-tree "грязно и тупо" заменен на LMDB).

Иначе говоря, сравнивалось НЕ "теплое с мягким", а LMDB и собственный внутренний движок хранения sqlite.
Причем при одинаковом sql-фронтенде и исполнительной машине байт-кода "скомпилированного sql".


"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено Аноним , 09-Сен-24 23:04 
Спасибо, конечно, за любопытные сведения, но прирост в 20 раз на *некоторых* простых тестах это далеко не
>Упомянутый sqlite такое не потянет, будет в 1000 раз медленнее и памяти будет жрать раз в 100 больше.

"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено Аноним , 09-Сен-24 23:22 
Если смотреть на Ethereum, точнее говоря на  Erigon (который самый быстрый из "frontiers", готовых к продуктовому использованию), то объем БД там 2-6 терабайт (в зависимости от типа узла и подвида блокчейна), а объем транзакций (суммарный размер вставляемых и/или обновляемых данных) порядка 10-100 гигабайт.

Так вот, если верить написанному по ссылке ниже, то производительность sqlite деградирует нелинейно с увеличением размера БД и объема транзакций. Поэтому весьма и весьма вероятно, что sqlite впендюренный (уж извините) в Erigon будет работать действительно на 2-3 порядка медленнее libmdbx.

Причем это не считая операций чтения, которые (судя по бенчмаркам и исходному коду) в sqlite примерно в 20-25 раз медленнее чем в libmdbx. И тут важно понимать, что никаких чудес нет -- libmdbx просто почти ничего не делает, только минимум операций (предельно близко к теоретическому пределу) и подкачка данных с диске (причем тут существенный overhead из-за hard page faults, ибо  memory mapped).

https://softwareengineering.stackexchange.com/questions/3320...


"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено Аноним , 09-Сен-24 18:06 
Зависит от задачи.
Если sqlite - это РСУБД, которая сама реализует стратегии объединения, сортировки, группировки и т.д., и выбирает их, построив план запроса (который может оказаться удачным, а может и не очень - это всегда в определенной мере эвристика), то подобные библиотеки представляют низкоуровневые API, с помощью которых это всё делается самостоятельно из небольших кирпичиков, что требует заметно больших усилий, но и позволяет максимально оптимизировать под конкретные задачи.

"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено Амомин , 09-Сен-24 00:24 
Кроме Эфира есть еще какие-то на слуху проекты использующие сабж?

"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено Аноним , 09-Сен-24 00:30 
ptsecurity.ru

"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено Амомин , 09-Сен-24 08:10 
Ого, а зачем рекламному сайту лендингу быстрая встраиваемая БД?

"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено я , 09-Сен-24 08:25 
> Ого, а зачем рекламному сайту лендингу быстрая встраиваемая БД?

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


"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено Амомин , 09-Сен-24 17:09 
Окей так и запишем - нигде кроме эфира и каких-то проприетарных продуктов какой-то компании которые большинство местных в глаза не видело и врядли увидит не используется.

"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено Аноним , 09-Сен-24 23:25 
Есть подозрение, что глобусу и сове на нём как-то всё равно что вы там куда-то записали ;)

"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено я , 09-Сен-24 00:43 
Аффтар где-то писал, что на libmdbx переходят все у кого были проблемы с LMDB, и это вроде-бы как 10% от проектов использующих LMDB.

Ну м в эфире два разных проекта (erigon на Go и reth на Rust).


"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено ананим.orig , 09-Сен-24 04:22 
Не знаю как сабж, а вот lmdb database backend в самбе можно использовать
https://wiki.samba.org/index.php/Using_the_lmdb_database_bac...

"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено dab1818 , 09-Сен-24 07:56 
как они все оттуда и выросли же:
lmdb в составе openldap - одних авторов,
libmdbx как форк lmdb в составе reOpenLdap форка openldap - товарищем Леонидом Юрьевым.

"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено Аноним , 09-Сен-24 16:11 
А он не децентрализованный чтоли? Что еще за БД в блокчейне?

"Выпуск встраиваемой СУБД libmdbx 0.13"
Отправлено Амомин , 09-Сен-24 17:10 
Ну а сам чейн этих самых блоков как-то надо хранить локально, не?