|
2.3, erthink (ok), 22:58, 08/02/2021 [^] [^^] [^^^] [ответить]
| +6 +/– |
> Это как berkeley db?
Смотря что подразумевать под этим "как".
Согласно википедии (https://en.wikipedia.org/wiki/Embedded_database#Oracle_Berkeley_DB) последнее время наблюдается массовый переход с Berkeley DB на LMDB, поскольку второе меньше глючит и работает быстрее. Ну и плюс изменение лицензии.
За вычетом лицензии, наверное, главная проблема Berkeley DB в кешировании: большие накладные расходы, глюки и деадлоки - всё с момента появления этого кеширования.
Тем не менее, в Berkeley DB есть немало фичей отсутствующих в LMDB (тут не добавляли не затребованного). Эти фичи кому-то могут быть крайне важны, но одновременно превращают Berkeley DB в монструозный легасу-комбайн.
---
Ну и соответственно MDBX - это "улучшенная" LMDB. Но важно что кроме "улучшений" в libmdbx устранено достаточно багов (пример проявления https://github.com/ledgerwatch/turbo-geth/issues/1473).
| |
|
3.62, Энон (?), 19:45, 09/02/2021 [^] [^^] [^^^] [ответить]
| –11 +/– |
вопрос из 4-х (четырёх!) слов... Ответ такого объёма, что первая мысль -- иди на [запрет в интернете]
| |
|
4.63, erthink (ok), 19:46, 09/02/2021 [^] [^^] [^^^] [ответить]
| +5 +/– |
> вопрос из 4-х (четырёх!) слов... Ответ такого объёма, что первая мысль --
> иди на [запрет в интернете]
Дак идите, не задерживайте очередь
| |
|
|
2.74, adolfus (ok), 11:33, 10/02/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
До BerkeleyDB этому поделию, как до Луны раком. Оно даже на база данных, а обычный ретривер. BerkeleyDB поддерживает ISAM и полностью ACID. Это единственная нормальная не SQL база данных.
| |
|
3.77, erthink (ok), 12:07, 10/02/2021 [^] [^^] [^^^] [ответить] | +2 +/– | Без обид, но чушь Видимо от незнания недопонимания Так было лет 30 назад Про... большой текст свёрнут, показать | |
|
|
1.2, Аноним (2), 22:32, 08/02/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –10 +/– |
Судя по патчу для порта FreeBSD, написано крайне непрофессионально.
| |
1.4, Аноним (4), 00:17, 09/02/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Ишвините, возможно не по адресу, но чем оно лучше leveldb? Понятно что leveldb не самая надёжная и устойчивая к поврежденями, кроме того у неё значительные футпринт и оверзхэд в рантайме, но помимо этого? А то lmdb что-то совсем никуда не годится.
| |
|
2.6, erthink (ok), 01:08, 09/02/2021 [^] [^^] [^^^] [ответить]
| +8 +/– |
> чем оно лучше leveldb?
Это разные движки, с принципиально различным внутренним устройством, т.е. теплое и мягкое.
> Понятно что leveldb не самая надёжная и устойчивая к поврежденями, кроме того у неё значительные футпринт и оверзхэд в рантайме, но помимо этого?
Дедушку levedb конечно пора отпустить, если только нет противопоказаний (например) от RocksDB.
Если же сравнивать MDBX (b+tree и ACID поверх MVCC за счет page shadowing) и RocksDB (LSM tree с "бантиками"), то минусы каждого из движков могут с запасом перекрыть плюсы в зависимости от сценариев и условий использования.
Т.е. если вам нужен "утюг", то подойдет одно, а если "подушка" - то другое.
При этом, для желающего понять как внутреннее устройство MDBX и RocksDB, так и для каких сценариев использования они (не)подходят - в Сети полно информации.
> А то lmdb что-то совсем никуда не годится.
ТТХ и поведение LMDB отлично соответствует целевым сценарием использования этого движка.
Поэтому оно очень даже годится с двумя оговорками:
1) в LMDB ребусный стиль кодирования, (как следствие) высокий порог вхождения и относительно малое кол-во людей готовых что-либо поправить с SLA.
= в MDBX это осталось, ибо иначе нужно "переписать".
2) в LMDB отсутствуют полноценные тесты и средства проверки целостности БД, (как следствие) баги приводящие к повреждению БД и/или потерям данных
= в MDBX это полностью устранено.
| |
|
3.7, Аноним (4), 01:18, 09/02/2021 [^] [^^] [^^^] [ответить]
| –3 +/– |
> Это разные движки, с принципиально различным внутренним устройством, т.е. теплое и мягкое.
Если будете делать такие заявления, я сейчас начну сравнивать MDBX и HDF5, и скорее всего даже не придётся долго подбирать кейсы на которых последняя окажется предпочтительнее.
| |
|
4.8, erthink (ok), 01:23, 09/02/2021 [^] [^^] [^^^] [ответить]
| +3 +/– |
>> Это разные движки, с принципиально различным внутренним устройством, т.е. теплое и мягкое.
> Если будете делать такие заявления, я сейчас начну сравнивать MDBX и HDF5, и скорее всего даже не придётся долго подбирать кейсы на которых последняя окажется предпочтительнее.
Т.е. вы считаете что MDBX и RocksDB схожи насколько, что метафора "теплое и мягкое" не подходит?
Просветите тогда уж меня убогого.
| |
|
5.9, Аноним (4), 01:35, 09/02/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
Нет. Я считаю, что это всё совершенно не интересно пользователям, имеют значение только осязаемые параметры. И вот скажем это "ура, мы на 5% быстрее на узкоспецифичных кейсах!" не тянет на конкурентное преимущество. По многим пользовательским параметрам rocks и lmdb проигрывают leveldb, во всяком случае так было неделю назад, когда я крайний раз выбирал key-value хранилище для проекта. Может быть, с тех пор что-нибудь и поменялось.
| |
|
6.12, erthink (ok), 02:15, 09/02/2021 [^] [^^] [^^^] [ответить] | +4 +/– | gt оверквотинг удален 1 Позвольте пожелать удачи вашему похоже воображаемому... большой текст свёрнут, показать | |
|
|
4.10, Аноним (10), 01:52, 09/02/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Если будете делать такие заявления, я сейчас начну сравнивать MDBX и HDF5, и скорее всего даже не придётся долго подбирать кейсы на которых последняя окажется предпочтительнее.
так сравни, с диагнозом сразу станет понятно ;)
| |
|
3.24, crypt (ok), 10:11, 09/02/2021 [^] [^^] [^^^] [ответить]
| +/– |
это все, конечно, да... а где в каких продуктах PT она используется?
| |
|
|
1.17, Аноним (17), 02:51, 09/02/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
const uint64_t cadabra =
rrxmrrxmsx_0(*abra + UINT64_C(7680760450171793) * (unsigned)mdbx_getpid())
качество кода зашкаливает
| |
|
2.18, erthink (ok), 02:57, 09/02/2021 [^] [^^] [^^^] [ответить]
| +2 +/– |
> const uint64_t cadabra =
> rrxmrrxmsx_0(*abra + UINT64_C(7680760450171793) * (unsigned)mdbx_getpid())
> качество кода зашкаливает
Не знакомы с иньективными отображениями и примитивами/миксерами хеш-функций?
Но я подскажу вам где действительно стоит критиковать - см. код функции mdbx_update_gc().
Это действительно то, что Howard Chu не стал осиливать ;)
А если "понравится", то начните с https://github.com/LMDB/lmdb/tree/mdb.master/libraries/liblmdb/mdb.c
| |
|
3.53, nuclight (??), 15:08, 09/02/2021 [^] [^^] [^^^] [ответить]
| +/– |
Вполне очевидно, что речь про:
> cadabra
> rrxmrrxmsx_0
а не константы хэшей - которые, впрочем, тоже можно было вынести в макросы.
| |
|
4.54, erthink (ok), 16:25, 09/02/2021 [^] [^^] [^^^] [ответить]
| +/– |
>Вполне очевидно, что речь про:
>> cadabra
>> rrxmrrxmsx_0
>а не константы хэшей - которые, впрочем, тоже можно было вынести в макросы.
Это (пожалуй) предельно простой и прозрачный фрагмент кода, примерно как hello world, но не пример из учебника.
Его читаемость улучшит только знание что такое rrxmrrxmsx и чем может быть константа, а не приседания с вынесением "магических" констант в макросы.
Поэтому, пожалуйста, не надо делать что-то вроде code review настолько беспощадно (к себе).
Тем не менее, если вы хотите облагородить какие-то фрагменты кода, то я с радостью приму PR.
| |
|
|
|
1.21, Аноним (21), 09:48, 09/02/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
А не подскажете, для сценария, однопоточного чтения/записи, с очень редкими записями из других потоков, какая KV-бд подойдёт? Надо максимизировать скорость.
| |
|
2.25, erthink (ok), 10:15, 09/02/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
> А не подскажете, для сценария, однопоточного чтения/записи, с очень редкими записями из
> других потоков, какая KV-бд подойдёт? Надо максимизировать скорость.
Если данные помещаются в ОЗУ и чтения существенно больше чем записи, то MDBX может быть очень неплохим вариантом:
- чтения будут неблокируемыми, OlogN и со скоростью доступа в память, и на каждом ядре CPU.
- редкие пишущие транзакции можно делать no-sync и сбрасывать на диск асинхронно (вызывая mdbx_env_sync из отдельного треда).
RocksDB также стоит примерить, особенно если какая-либо фича может вам помочь (например фильтр Блума).
Но в целом может подойти очень многое и надо внимательно смотреть на все остальные аспекты.
| |
|
1.31, Аноним (-), 10:39, 09/02/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –4 +/– |
Очень хорошо . Только если рискнули на гитхабной помойке разрабатывать - закройте возможность гадить в код кому попало иначем мы вас потеряем очень скоро.
| |
|
2.32, Аноним (-), 10:44, 09/02/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Please don't use my work, if you are associated with Adolf Hitler, Stepan Bandera, George Soros, Michael Hodorkovsky, either support an actions of these felons.
Одобрямс. Надо лицензию придумать чтоб копрорации не имели право использовать код, есть идеи ?
| |
|
3.39, pansa2 (?), 11:36, 09/02/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
Да, хорошо бы такое ... выпиливать с гитхаба. Предлагаю флешмобчик в виде абьюзов. =)
| |
3.42, anonymous (??), 12:14, 09/02/2021 [^] [^^] [^^^] [ответить]
| +/– |
Ставить Ходорковского в один ряд с Гитлером -- это знать про Ходорковского из пропагандистских СМИ. А вообще в свободных лицензиях не должно быть ничего такого конечно же. Навязывать свои тараканы чужим -- это уже не свободная лицензия.
| |
|
4.43, erthink (ok), 12:20, 09/02/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Ставить Ходорковского в один ряд с Гитлером -- это знать про Ходорковского
> из пропагандистских СМИ.
Ваше мнение является следствием других пропагандистских СМИ.
Тем не менее, там нет явного знака равенства (т.е. не нужно передергивать), а ограничение на длину не позволяет что-либо уточнить.
> А вообще в свободных лицензиях не должно быть
> ничего такого конечно же. Навязывать свои тараканы чужим -- это уже
> не свободная лицензия.
Читайте внимательно.
Это просьба, а не часть лицензий (которые явно указаны внутри каждого проекта).
| |
|
5.76, anonymous (??), 11:37, 10/02/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Ваше мнение является следствием других пропагандистских СМИ.
Скорее собственного небольшого исследования на эту тему. При участии СМИ конечно же, но скорее как для получения дополнительного набора ссылок для уточнения.
> там нет явного знака равенства
Я и не говорил, что он там есть.
> Это просьба, а не часть лицензий (которые явно указаны внутри каждого проекта).
Я и не говорил "убрать из лицензии" или как либо иначе о том, что оно есть в лицензии. Я лишь говорю, что такого в свободных лицензиях быть не должно.
Читайте внимательнее.
| |
|
|
3.44, Аноним (46), 12:20, 09/02/2021 [^] [^^] [^^^] [ответить]
| +/– |
>лицензию придумать чтоб копрорации не имели право использовать код
GNU GPL
| |
|
2.47, erthink (ok), 12:24, 09/02/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Очень хорошо . Только если рискнули на гитхабной помойке разрабатывать - закройте
> возможность гадить в код кому попало иначем мы вас потеряем очень
> скоро.
Не понял что вы хотели сказать.
В код кому-то гадить крайне сложно, нужны явные разрешения и некое понимание кода.
Ну и никакой особой разработки на github нет, это просто удобная и общеизвестная площадка, которая используется для:
- раздачи кода.
- взаимодействия с пользователями библиотеки и накопления "ачивок" (гитхабовых звездочек).
- прогона CI-тестов на условиях "для open source".
А после блокировки Крыма основным репо считается https://abf.io/erthink/libmdbx, о чем добавлены примечания.
| |
|
3.49, Аноним (-), 12:48, 09/02/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Не понял что вы хотели сказать.
> В код кому-то гадить крайне сложно, н общеизвестная площадка
Общественный сартир. Никогда не знаешь какой баг тебе завезут "случайно" под видом поддержки windoz (кстати поддержку оно лучше выпилить в идеале не заявлять изначально). У меня уже музей проектов которые мы потеряли. То тут вдруг и неожиданно пофиксили что работать стало в тысячи раз медленнее, то тум вдруг буфер стал вылазить и ни один санитайзер не видит этого. Могу только посоветовать если не плевать на свое творчество (которое потеряешь когда принимаешь чужие комиты, точнее они становятся совладельцами и могут сыграть с тобой в демократические выборы, и всем будет чьхать что ты 99.9999% кода написал) .
Хороший же проект, опомнись пока не поздно !
| |
|
4.50, erthink (ok), 13:04, 09/02/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Хороший же проект, опомнись пока не поздно !
Все несколько проще:
- MDBX основывается на LMDB, поэтому лицензию уже не изменить (OpenLDAP Public License), вне зависимости от (не)принятия каких-либо коммитов.
- что касается MithrilDB, то вне зависимости от лицензии там будет Contribution Agreement.
Тем не менее, модель Open Source, как таковая, имеет свои как плюсы, так и минусы...
| |
|
5.51, Наноним (?), 13:27, 09/02/2021 [^] [^^] [^^^] [ответить]
| +/– |
> MithrilDB
AdamantiumDB тоже свободно!
Вроде бы взрослый человек...
| |
|
6.52, erthink (ok), 13:38, 09/02/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
>> MithrilDB
>AdamantiumDB тоже свободно!
>Вроде бы взрослый человек...
Так это же для пользователей, а они как дети - хотят тесла, яблоки всякие...
Но на всех не угодишь - тут вот какому-то дитяте тайтл "libmdbx" не нравился, а вам "мифрил".
Короче, сделайте усилие и привыкайте ;)
| |
|
7.57, Наноним (?), 16:43, 09/02/2021 [^] [^^] [^^^] [ответить]
| +/– |
Ну да, ну да. Это пользовательское бессознательное шутить изволит.
Побойтесь Зевса!
| |
|
|
|
|
3.69, Tifereth (ok), 03:45, 10/02/2021 [^] [^^] [^^^] [ответить]
| +/– |
В подвале сайта стоит
ROSA Lab © 2021
при этом и rosalab.com, и rosalinux.com недоступны. Хотя жив wiki.rosalab.com - подправили бы подвал, что ли...
| |
|
4.72, Аноним (72), 11:01, 10/02/2021 [^] [^^] [^^^] [ответить]
| +/– |
> при этом и rosalab.com, и rosalinux.com недоступны. Хотя жив wiki.rosalab.com - подправили бы подвал, что ли...
РОСА всегда жила в зоне *.ru, а не *.com
| |
|
5.79, Tifereth (ok), 14:33, 10/02/2021 [^] [^^] [^^^] [ответить]
| +/– |
>> при этом и rosalab.com, и rosalinux.com недоступны. Хотя жив wiki.rosalab.com - подправили бы подвал, что ли...
> РОСА всегда жила в зоне *.ru, а не *.com
Ну тогда им точно нужно малость починить сайт. На главной
https://abf.io/
в подвале стоит вот что:
[a href="http://www.rosalab.com/about"]About the company[/a]
(нормальные теги по понятной причине поставить не могу)
| |
|
|
|
|
1.41, Аноним (41), 12:07, 09/02/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Субдб либмдбх. Высокопроизводительный. Скороговорка. После 3-х стаканов.
| |
|
2.45, erthink (ok), 12:21, 09/02/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Субдб либмдбх. Высокопроизводительный. Скороговорка. После 3-х стаканов.
Есть еще и "t1ha", так что лучше не пейте (тем более стаканами).
| |
|
|
2.58, erthink (ok), 16:58, 09/02/2021 [^] [^^] [^^^] [ответить]
| +/– |
> erthink, а API по сравнению с lmdb сильно изменено? Чем-то вроде https://github.com/lmdbjava/lmdbjava
> удастся воспользоваться или биндинг самому писать придется?
API существенно расширено и в паре мест принципиально изменено (время жизни и требования явно закрывать курсоры, время жизни DBI хендлов).
Но всё такие изменения (включая причины) описаны в доке.
Поэтому биндинги на 95% получаются путем замены префиксов.
Кроме этого, в README есть ссылки на существующие привязки. Там есть и для Явы, хотя порядком протухшие.
Есть от чего оттолкнуться.
| |
2.61, erthink (ok), 17:08, 09/02/2021 [^] [^^] [^^^] [ответить]
| +/– |
Если вдруг сподвигнитесь на собственные байдинги, то большая просьба глянуть на новое C++ API и "повторить на яве" ради унификации. При этом сейчас ещё можно обсуждать и встречно менять плюсовое API.
| |
|
1.64, andy (??), 21:11, 09/02/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Поклонники Сороса, Ходорковского и Бандеры не используют Ваши продукты?
| |
|
2.68, rico (ok), 00:10, 10/02/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Они очень страдают морально и финансово, но нет. Не используют.
| |
|
|
2.78, erthink (ok), 13:32, 10/02/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Почему Miranda NG переходит на SQLite, если MDBX так хороша?
Насколько мне известно, там не переход, а добавление еще одного драйвера хранения.
Тем не менее, история такая:
1.
До каких-то последних версий (если не ошибаюсь, в январе этого 2021 года) libmdbx внутри Miranda NG использовалась некорректно, из-за чего пользователи теряли данные.
Пользователи считали что причина проблем в MDBX, ругались и активно просили добавить еще один драйвер хранения.
Суть проблемы была в том, что БД явно и намеренно открывалась в небезопасном режиме (без гарантий сохранности данных при системном сбое, выключении питания и т.п).
Это неоднократно было пояснено разработчикам, но они считали что риски мизерны и долго не могли сподвигнуться на переделку своего кода.
Следы этих обсуждений и моих пояснений/комментариев есть как в https://github.com/miranda-ng/miranda-ng/issues, так и на форуме Miranda NG http://forum.ru-board.com/topic.cgi?forum=5&topic=34402
2.
Примерно за год до этого (до февраля 2020 года), в драйвере Miranda NG были какие-то баги, из-за которых в БД записывались неверные данные.
Подробностей я не помню, но они есть в истории коммитов Miranda NG и в issues проекта на github.
3.
Еще примерно за год до этого (до февраля 2019 года) было две неприятности именно в libmdbx:
- Из-за моей оплошности в миранду (и далее к пользователям) исходно попала "девелоперская" версия, которая намерено делалась несовместимой по формату БД с релизами (чтобы в production не попадали экспериментальные фичи).
Эту проблему огораживали как могли, но пользователей она конечно злила.
- Был обнаружен и устранен унаследованный из LMDB баг, который мог приводить к повреждению БД.
Возможно этот баг также затронул пользователей миранды, но субъективно проблемы были от описанного выше.
--
В libmdbx при этом много чего было сделано для лучшей поддержки Windows, включая даже поддержку Windows 2000/XP и работу под Wine.
| |
|
3.82, AnonPlus (?), 02:25, 10/04/2021 [^] [^^] [^^^] [ответить]
| +/– |
В следующем выпуске именно переход, т.к. mdbx-базы будут только читаться, создавать новые уже запрещено.
| |
|
2.81, AnonPlus (?), 02:24, 10/04/2021 [^] [^^] [^^^] [ответить]
| +/– |
Две причины:
- изначально хотели таки на SQLite, но не было идей, как сделать его достаточно быстрым для нужд Миранды. Поэтому, взяли то, что было уже быстрым, а потом за годы неспеша реализовали поддержку курсоров и, в целом, достаточно ускорили работу SQLite.
- под SQLite есть тонна внешних утилит для работы с базами, пользователи это очень хотят
| |
|
|