The OpenNET Project / Index page

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



"Выпуск встраиваемой СУБД libmdbx 0.13"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск встраиваемой СУБД 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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Аноним (1), 08-Сен-24, 23:08   +3 +/
Скажите, есть ли какой-то смысл использовать подобные db вместо, например, sqlite?
В чём преимущество?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #2, #3, #4, #5, #41

2. Сообщение от мяя (?), 08-Сен-24, 23:12   +/
Скорость, компактность реализации.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

3. Сообщение от Совершенно другой аноним (?), 08-Сен-24, 23:24   +2 +/
Ну, как-бы, это разные вещи. В SQLite доступ посредством SQL, табличное представление данных, а в тут - доступ спец-функциями и представление данных "ключ-значение".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #6

4. Сообщение от Самый умный аноним (?), 08-Сен-24, 23:28   +/
> В чём преимущество?

gitflic.ru

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #31

5. Сообщение от Аноним (5), 08-Сен-24, 23:38   +3 +/
Если вас устраивает условный sqlite, то подобные движки вам не нужны.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #11

6. Сообщение от Аноним (1), 08-Сен-24, 23:39   –3 +/
В плане представления данных разница не такая уж большая между SQL и ключ-значение. В SQL базах строки таблиц это тоже по сути поле-ключ и всё остальное (остальные поля).
Но SQL сильно упрощает создание запросов и управление структурой db - удаление/добавление таблиц/индексов, задание связей между таблицами. Для баз ключ-значение больше труда нужно для создания цепочек вызовов функций, а результат тот же.
Явный недостаток SQL - то что движок сложнее.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #13

8. Сообщение от Амомин (?), 09-Сен-24, 00:24   +1 +/
Кроме Эфира есть еще какие-то на слуху проекты использующие сабж?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #9, #10, #34

9. Сообщение от Аноним (5), 09-Сен-24, 00:30   +/
ptsecurity.ru
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #21

10. Сообщение от я (?), 09-Сен-24, 00:43   +/
Аффтар где-то писал, что на libmdbx переходят все у кого были проблемы с LMDB, и это вроде-бы как 10% от проектов использующих LMDB.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #16

11. Сообщение от нах. (?), 09-Сен-24, 01:47   –1 +/
"показатели достигли потолка, с которого первоначально и были взяты"(c)

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #14

13. Сообщение от Карлос Сношайтилис (ok), 09-Сен-24, 02:37   +/
SQL – это диалект.
Его могут поддерживать разные, по типу, бд, например, строчные или колоночные. А у них сильно разные принципы хранения.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #46

14. Сообщение от Аноним (5), 09-Сен-24, 03:36   +6 +/
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.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #19, #23, #28, #43

16. Сообщение от ананим.orig (?), 09-Сен-24, 04:22   +/
Не знаю как сабж, а вот lmdb database backend в самбе можно использовать
https://wiki.samba.org/index.php/Using_the_lmdb_database_bac...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #20

19. Сообщение от llolik (ok), 09-Сен-24, 07:13   +/
> Ну и использование SQL гораздо комфортнее чем возня с key-value

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14

20. Сообщение от dab1818 (?), 09-Сен-24, 07:56   +3 +/
как они все оттуда и выросли же:
lmdb в составе openldap - одних авторов,
libmdbx как форк lmdb в составе reOpenLdap форка openldap - товарищем Леонидом Юрьевым.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16

21. Сообщение от Амомин (?), 09-Сен-24, 08:10   +/
Ого, а зачем рекламному сайту лендингу быстрая встраиваемая БД?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #22

22. Сообщение от я (?), 09-Сен-24, 08:25   +/
> Ого, а зачем рекламному сайту лендингу быстрая встраиваемая БД?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #39

23. Сообщение от Gemorroj (ok), 09-Сен-24, 09:47   –2 +/
это же пох.  с ним говорить вообще бесполезно. он конченный
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #27, #29

27. Сообщение от Аноним (27), 09-Сен-24, 11:09   +2 +/
почему? польза есть, вон сколько фактов интересных написали в ответ
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23 Ответы: #35

28. Сообщение от Аноним (28), 09-Сен-24, 12:55   +/
Делать бенчмарки, сравнивающие key-value хранилище c sql-бд - вот что полностью характеризует человека и все его поделки.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #32, #42

29. Сообщение от OpenEcho (?), 09-Сен-24, 13:04   +1 +/
Помоему в данном, конкретном случае его коммент на фразу: "будет в 1000 раз медленнее и памяти будет жрать раз в 100 больше." очень даже уместен. Это же цифры правда с потолка, в отличии от follow up на пох пост
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23

31. Сообщение от OpenEcho (?), 09-Сен-24, 13:30   +1 +/
> gitflic.ru

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

32. Сообщение от Аноним (32), 09-Сен-24, 14:49   +/
Ну, на подобном сравнивании теплого с мягким вырос целый Фороникс.
Не смотря на присущий скептицизм при анализе результатов проводимых им тестов,
он все же сделал много и полезного (те же тесты от фороникса).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28

34. Сообщение от Аноним (34), 09-Сен-24, 16:11   +/
А он не децентрализованный чтоли? Что еще за БД в блокчейне?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #40

35. Сообщение от _ (??), 09-Сен-24, 16:46   +/
> почему?

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27

39. Сообщение от Амомин (?), 09-Сен-24, 17:09   –2 +/
Окей так и запишем - нигде кроме эфира и каких-то проприетарных продуктов какой-то компании которые большинство местных в глаза не видело и врядли увидит не используется.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #45

40. Сообщение от Амомин (?), 09-Сен-24, 17:10   +/
Ну а сам чейн этих самых блоков как-то надо хранить локально, не?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34

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

42. Сообщение от Аноним (42), 09-Сен-24, 21:04   +/
> Делать бенчмарки, сравнивающие key-value хранилище c sql-бд - вот что полностью характеризует человека и все его поделки.

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28

43. Сообщение от Аноним (43), 09-Сен-24, 23:04   +/
Спасибо, конечно, за любопытные сведения, но прирост в 20 раз на *некоторых* простых тестах это далеко не
>Упомянутый sqlite такое не потянет, будет в 1000 раз медленнее и памяти будет жрать раз в 100 больше.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #44

44. Сообщение от Аноним (42), 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...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43

45. Сообщение от Аноним (42), 09-Сен-24, 23:25   +/
Есть подозрение, что глобусу и сове на нём как-то всё равно что вы там куда-то записали ;)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39

46. Сообщение от Анонимemail (46), 10-Сен-24, 19:56   +/
SQL - это не диалект а язык. Диалекты у его реализаций.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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