1.1, Аноним (1), 23:08, 08/09/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
Скажите, есть ли какой-то смысл использовать подобные db вместо, например, sqlite?
В чём преимущество?
| |
|
2.3, Совершенно другой аноним (?), 23:24, 08/09/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
Ну, как-бы, это разные вещи. В SQLite доступ посредством SQL, табличное представление данных, а в тут - доступ спец-функциями и представление данных "ключ-значение".
| |
|
3.6, Аноним (1), 23:39, 08/09/2024 [^] [^^] [^^^] [ответить]
| –3 +/– |
В плане представления данных разница не такая уж большая между SQL и ключ-значение. В SQL базах строки таблиц это тоже по сути поле-ключ и всё остальное (остальные поля).
Но SQL сильно упрощает создание запросов и управление структурой db - удаление/добавление таблиц/индексов, задание связей между таблицами. Для баз ключ-значение больше труда нужно для создания цепочек вызовов функций, а результат тот же.
Явный недостаток SQL - то что движок сложнее.
| |
|
4.13, Карлос Сношайтилис (ok), 02:37, 09/09/2024 [^] [^^] [^^^] [ответить]
| +/– |
SQL – это диалект.
Его могут поддерживать разные, по типу, бд, например, строчные или колоночные. А у них сильно разные принципы хранения.
| |
|
|
2.5, Аноним (5), 23:38, 08/09/2024 [^] [^^] [^^^] [ответить]
| +3 +/– |
Если вас устраивает условный sqlite, то подобные движки вам не нужны.
Преимущество же в меньших накладных расходах и, соответственно, более высокой производительности и/или меньшем потреблении ресурсов.
Например, Ethereum сейчас сидит на libmdbx, а Monero на LMDB.
Упомянутый sqlite такое не потянет, будет в 1000 раз медленнее и памяти будет жрать раз в 100 больше.
| |
|
3.11, нах. (?), 01:47, 09/09/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
"показатели достигли потолка, с которого первоначально и были взяты"(c)
Подтверждать эту чепуху тестами вы конечно же не будете, джентльменам ведь верят на слово.
| |
|
4.14, Аноним (5), 03:36, 09/09/2024 [^] [^^] [^^^] [ответить]
| +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.
| |
|
|
6.27, Аноним (27), 11:09, 09/09/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
почему? польза есть, вон сколько фактов интересных написали в ответ
| |
|
7.35, _ (??), 16:46, 09/09/2024 [^] [^^] [^^^] [ответить]
| +/– |
> почему?
Потому что пЫонеров чмырит "с особым цЫнизмом"(С) :-)
Вон слёзки как капают у некоторых...
А по профессии он не чаще других загонялся и гнал пургу :) Но это мы все могЁм, включая меня :)
| |
|
6.29, OpenEcho (?), 13:04, 09/09/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Помоему в данном, конкретном случае его коммент на фразу: "будет в 1000 раз медленнее и памяти будет жрать раз в 100 больше." очень даже уместен. Это же цифры правда с потолка, в отличии от follow up на пох пост
| |
|
5.28, Аноним (28), 12:55, 09/09/2024 [^] [^^] [^^^] [ответить]
| +/– |
Делать бенчмарки, сравнивающие key-value хранилище c sql-бд - вот что полностью характеризует человека и все его поделки.
| |
|
6.32, Аноним (32), 14:49, 09/09/2024 [^] [^^] [^^^] [ответить]
| +/– |
Ну, на подобном сравнивании теплого с мягким вырос целый Фороникс.
Не смотря на присущий скептицизм при анализе результатов проводимых им тестов,
он все же сделал много и полезного (те же тесты от фороникса).
| |
6.42, Аноним (42), 21:04, 09/09/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Делать бенчмарки, сравнивающие key-value хранилище c sql-бд - вот что полностью характеризует человека и все его поделки.
Так вы даже не поняли написанного.
Там сравнивались НЕ key-value с sql, а оригинальный sqlite (с собственным b-tree) и sqlightning (sqlite, в котором исходный b-tree "грязно и тупо" заменен на LMDB).
Иначе говоря, сравнивалось НЕ "теплое с мягким", а LMDB и собственный внутренний движок хранения sqlite.
Причем при одинаковом sql-фронтенде и исполнительной машине байт-кода "скомпилированного sql".
| |
|
5.43, Аноним (43), 23:04, 09/09/2024 [^] [^^] [^^^] [ответить]
| +/– |
Спасибо, конечно, за любопытные сведения, но прирост в 20 раз на *некоторых* простых тестах это далеко не
>Упомянутый sqlite такое не потянет, будет в 1000 раз медленнее и памяти будет жрать раз в 100 больше. | |
|
6.44, Аноним (42), 23:22, 09/09/2024 [^] [^^] [^^^] [ответить]
| +/– |
Если смотреть на 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/332069/what-is-a-reali
| |
|
|
|
|
2.41, Аноним (41), 18:06, 09/09/2024 [^] [^^] [^^^] [ответить]
| +/– |
Зависит от задачи.
Если sqlite - это РСУБД, которая сама реализует стратегии объединения, сортировки, группировки и т.д., и выбирает их, построив план запроса (который может оказаться удачным, а может и не очень - это всегда в определенной мере эвристика), то подобные библиотеки представляют низкоуровневые API, с помощью которых это всё делается самостоятельно из небольших кирпичиков, что требует заметно больших усилий, но и позволяет максимально оптимизировать под конкретные задачи.
| |
|
|
|
|
4.22, я (?), 08:25, 09/09/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Ого, а зачем рекламному сайту лендингу быстрая встраиваемая БД?
Не лендингу, а используется в продуктах компании. Собственно для этого и делается.
| |
|
5.39, Амомин (?), 17:09, 09/09/2024 [^] [^^] [^^^] [ответить]
| –2 +/– |
Окей так и запишем - нигде кроме эфира и каких-то проприетарных продуктов какой-то компании которые большинство местных в глаза не видело и врядли увидит не используется.
| |
|
6.45, Аноним (42), 23:25, 09/09/2024 [^] [^^] [^^^] [ответить]
| +/– |
Есть подозрение, что глобусу и сове на нём как-то всё равно что вы там куда-то записали ;)
| |
|
|
|
|
2.10, я (?), 00:43, 09/09/2024 [^] [^^] [^^^] [ответить]
| +/– |
Аффтар где-то писал, что на libmdbx переходят все у кого были проблемы с LMDB, и это вроде-бы как 10% от проектов использующих LMDB.
Ну м в эфире два разных проекта (erigon на Go и reth на Rust).
| |
|
|
4.20, dab1818 (?), 07:56, 09/09/2024 [^] [^^] [^^^] [ответить]
| +3 +/– |
как они все оттуда и выросли же:
lmdb в составе openldap - одних авторов,
libmdbx как форк lmdb в составе reOpenLdap форка openldap - товарищем Леонидом Юрьевым.
| |
|
|
|
3.40, Амомин (?), 17:10, 09/09/2024 [^] [^^] [^^^] [ответить]
| +/– |
Ну а сам чейн этих самых блоков как-то надо хранить локально, не?
| |
|
|
|