The OpenNET Project / Index page

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



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

"Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.9.3"  +/
Сообщение от opennews (??), 08-Фев-21, 22:16 
После двух месяцев разработки состоялся выпуск библиотеки libmdbx 0.9.3 (MDBX) с реализацией высокопроизводительной, компактной встраиваемой базы данных класса ключ-значение. Код libmdbx распространяется под лицензией OpenLDAP Public License. libmdbx является глубокой переработкой СУБД LMDB и по заявлению разработчиков превосходит своего прародителя по надежности, набору возможностей и производительности. Заявляется, что libmdbx до 20% быстрее LMDB в CRUD сценариях, и до 30% быстрее если при сборке libmdbx отключить внутренний контроль до сопоставимого с LMDB уровня...

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

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

Оглавление

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

1. Сообщение от Аноним (1), 08-Фев-21, 22:16   –1 +/
Это как berkeley db?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #3, #74

2. Сообщение от Аноним (2), 08-Фев-21, 22:32   –10 +/
Судя по патчу для порта FreeBSD, написано крайне непрофессионально.
Ответить | Правка | Наверх | Cообщить модератору

3. Сообщение от erthink (ok), 08-Фев-21, 22:58   +6 +/
> Это как berkeley db?

Смотря что подразумевать под этим "как".

Согласно википедии (https://en.wikipedia.org/wiki/Embedded_database#Oracle_Berke... последнее время наблюдается массовый переход с Berkeley DB на LMDB, поскольку второе меньше глючит и работает быстрее. Ну и плюс изменение лицензии.

За вычетом лицензии, наверное, главная проблема Berkeley DB в кешировании: большие накладные расходы, глюки и деадлоки - всё с момента появления этого кеширования.

Тем не менее, в Berkeley DB есть немало фичей отсутствующих в LMDB (тут не добавляли не затребованного). Эти фичи кому-то могут быть крайне важны, но одновременно превращают Berkeley DB в монструозный легасу-комбайн.

---

Ну и соответственно MDBX - это "улучшенная" LMDB. Но важно что кроме "улучшений" в libmdbx устранено достаточно багов (пример проявления https://github.com/ledgerwatch/turbo-geth/issues/1473).

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

4. Сообщение от Аноним (4), 09-Фев-21, 00:17   –1 +/
Ишвините, возможно не по адресу, но чем оно лучше leveldb? Понятно что leveldb не самая надёжная и устойчивая к поврежденями, кроме того у неё значительные футпринт и оверзхэд в рантайме, но помимо этого? А то lmdb что-то совсем никуда не годится.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #6

6. Сообщение от erthink (ok), 09-Фев-21, 01:08   +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 это полностью устранено.

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

7. Сообщение от Аноним (4), 09-Фев-21, 01:18   –3 +/
> Это разные движки, с принципиально различным внутренним устройством, т.е. теплое и мягкое.

Если будете делать такие заявления, я сейчас начну сравнивать MDBX и HDF5, и скорее всего даже не придётся долго подбирать кейсы на которых последняя окажется предпочтительнее.

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

8. Сообщение от erthink (ok), 09-Фев-21, 01:23   +3 +/
>> Это разные движки, с принципиально различным внутренним устройством, т.е. теплое и мягкое.
> Если будете делать такие заявления, я сейчас начну сравнивать MDBX и HDF5, и скорее всего даже не придётся долго подбирать кейсы на которых последняя окажется предпочтительнее.

Т.е. вы считаете что MDBX и RocksDB схожи насколько, что метафора "теплое и мягкое" не подходит?

Просветите тогда уж меня убогого.

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

9. Сообщение от Аноним (4), 09-Фев-21, 01:35   –2 +/
Нет. Я считаю, что это всё совершенно не интересно пользователям, имеют значение только осязаемые параметры. И вот скажем это "ура, мы на 5% быстрее на узкоспецифичных кейсах!" не тянет на конкурентное преимущество. По многим пользовательским параметрам rocks и lmdb проигрывают leveldb, во всяком случае так было неделю назад, когда я крайний раз выбирал key-value хранилище для проекта. Может быть, с тех пор что-нибудь и поменялось.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #11, #12

10. Сообщение от Аноним (10), 09-Фев-21, 01:52   +/
> Если будете делать такие заявления, я сейчас начну сравнивать MDBX и HDF5, и скорее всего даже не придётся долго подбирать кейсы на которых последняя окажется предпочтительнее.

так сравни, с диагнозом сразу станет понятно ;)

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

11. Сообщение от erthink (ok), 09-Фев-21, 01:58   +1 +/
отредактировано/удалено: кот прыгнул на тачпад...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

12. Сообщение от erthink (ok), 09-Фев-21, 02:15   +4 +/
>[оверквотинг удален]
> быстрее на узкоспецифичных кейсах!" не тянет на конкурентное преимущество. По многим
> пользовательским параметрам rocks и lmdb проигрывают leveldb, во всяком случае так
> было неделю назад, когда я крайний раз выбирал key-value хранилище для
> проекта. Может быть, с тех пор что-нибудь и поменялось.
> Нет. Я считаю, что это всё совершенно не интересно пользователям, имеют значение
> только осязаемые параметры. И вот скажем это "ура, мы на 5%
> быстрее на узкоспецифичных кейсах!" не тянет на конкурентное преимущество. По многим
> пользовательским параметрам rocks и lmdb проигрывают leveldb, во всяком случае так
> было неделю назад, когда я крайний раз выбирал key-value хранилище для
> проекта. Может быть, с тех пор что-нибудь и поменялось.

1) Позвольте пожелать удачи вашему (похоже воображаемому) "проекту".

2) Не 5%, а до 30%. Не в "узкоспециализированных кейсах", а в CRUD-сценариях с псевдо-случайным порядком записей.
По ссылкам, кроме _ВСЕХ_ исходных текстов, легко найти примечание: 2 inserts, 1 read, 1 update, 1 delete.

3) Ничего не поменялось примерно с самого начала.
Что-чему проиграет/выиграет принципиально зависит от требований, например:
- сколько процессов работают с БД;
- нужны ли транзакции и с какой изоляцией;
- отношение read/write в нагрузке;
- ограничения на выброс latency;
- нужны ли выборки диапазонов;
- как долго живут версии данных;
- отношение объема данных и ОЗУ;
- какие диски;
- и т.д.

Короче, просится RTFM:
https://github.com/erthink/libmdbx#performance-comparison
https://github.com/erthink/libmdbx#comparison-with-other-dat...

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

13. Сообщение от Аноним (13), 09-Фев-21, 02:17   –1 +/
Ужасно сложно выражаешь свои мысли
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #15

14. Сообщение от Аноним (13), 09-Фев-21, 02:25   +/
> LSM tree с "бантиками"

Каким еще "бантиками"?

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

15. Сообщение от Аноним (10), 09-Фев-21, 02:28   +/
он и код пишет такой-же, даже говард чу не осиливает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13

16. Сообщение от erthink (ok), 09-Фев-21, 02:31   +2 +/
>> LSM tree с "бантиками"
> Каким еще "бантиками"?

https://github.com/facebook/rocksdb/wiki/Features-Not-in-Lev...

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

17. Сообщение от Аноним (17), 09-Фев-21, 02:51   +1 +/
const uint64_t cadabra =
      rrxmrrxmsx_0(*abra + UINT64_C(7680760450171793) * (unsigned)mdbx_getpid())

качество кода зашкаливает

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

18. Сообщение от erthink (ok), 09-Фев-21, 02:57   +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/liblm...

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

21. Сообщение от Аноним (21), 09-Фев-21, 09:48   +/
А не подскажете, для сценария, однопоточного чтения/записи, с очень редкими записями из других потоков, какая KV-бд подойдёт? Надо максимизировать скорость.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #25

22. Сообщение от Наноним (?), 09-Фев-21, 10:00   +1 +/
mdbx.c++
mdbx.h++

"Быть не как все" снова детектед.

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

24. Сообщение от crypt (ok), 09-Фев-21, 10:11   +/
это все, конечно, да... а где в каких продуктах PT она используется?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #27

25. Сообщение от erthink (ok), 09-Фев-21, 10:15   +1 +/
> А не подскажете, для сценария, однопоточного чтения/записи, с очень редкими записями из
> других потоков, какая KV-бд подойдёт? Надо максимизировать скорость.

Если данные помещаются в ОЗУ и чтения существенно больше чем записи, то MDBX может быть очень неплохим вариантом:
- чтения будут неблокируемыми, OlogN и со скоростью доступа в память, и на каждом ядре CPU.
- редкие пишущие транзакции можно делать no-sync и сбрасывать на диск асинхронно (вызывая mdbx_env_sync из отдельного треда).


RocksDB также стоит примерить, особенно если какая-либо фича может вам помочь (например фильтр Блума).

Но в целом может подойти очень многое и надо внимательно смотреть на все остальные аспекты.

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

26. Сообщение от Аноним (4), 09-Фев-21, 10:18   –6 +/
Спасибо за очередное напоминание почему стоит держаться подальше от руснявых разработчиков. Хотя, конечно, хамство в ответ на вопросы - это нормально для них, можно и привыкнуть давно было. По ссылке какой-то маркетинговый булшит, нужны нормальные исследования и оценки.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #28

27. Сообщение от erthink (ok), 09-Фев-21, 10:20   +/
https://github.com/PositiveTechnologies/libfpta внутри https://www.ptsecurity.com/ru-ru/products/mpsiem/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24

28. Сообщение от erthink (ok), 09-Фев-21, 10:27   +4 +/
> Спасибо за очередное напоминание почему стоит держаться подальше от руснявых разработчиков. Хотя, конечно, хамство в ответ на вопросы - это нормально для них, можно и привыкнуть давно было. По ссылке какой-то маркетинговый булшит, нужны нормальные исследования и оценки.

Хамство от вас с самого начала и особенно здесь, а булшит в вашем нежелании вникать в информацию.

Смотрите любые бенчмарки LMDB и делайте поправку на дополнительные фичи MDBX и "до 30%" прироста производительности.
https://symas.com/lmdb/technical/

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

29. Сообщение от Аноним (4), 09-Фев-21, 10:35   –2 +/
Угу. Это звучит как: "Показать нам нечего, мы ничего не можем, найдите там что-нибудь и прикиньте что-нибудь к чему-нибудь сами, может быть на что-нибудь будет похоже". Но если это ровно та же lmdb, то очевидно, что выбор будет сделан в пользу rocks (либо leveldb).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #33

30. Сообщение от Аноним (4), 09-Фев-21, 10:36   –3 +/
Ещё и минусы проставляет при каждом ответе, а себя плюсует. Ну это уже совсем клиника.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #34

31. Сообщение от Аноним (-), 09-Фев-21, 10:39   –4 +/
Очень хорошо . Только если рискнули на гитхабной помойке разрабатывать - закройте возможность гадить в код кому попало иначем мы вас потеряем очень скоро.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #32, #47

32. Сообщение от Аноним (-), 09-Фев-21, 10:44   –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.

Одобрямс. Надо лицензию придумать чтоб копрорации не имели право использовать код, есть идеи ?

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

33. Сообщение от erthink (ok), 09-Фев-21, 10:47   +1 +/
> Угу. Это звучит как: "Показать нам нечего, мы ничего не можем, найдите
> там что-нибудь и прикиньте что-нибудь к чему-нибудь сами, может быть на
> что-нибудь будет похоже". Но если это ровно та же lmdb, то
> очевидно, что выбор будет сделан в пользу rocks (либо leveldb).

Еще раз для одарённых:
- в README есть результаты бенчмарков, со всеми исходниками и сценариями.
- в README есть список наиболее значимых фич MDBX отсутствующих в LMDB.
- в Сети есть масса результатов, статей и сравнений LMDB.
- в GNUMakefile есть цель для запуска бенчмарков, позволяющая в частности сравнить MDBX и LMDB, т.е. увидеть разницу.

При этом нет цели убедить каждого анонимного недооцененного гения в том, что ему нужно, или не нужно, использовать MDBX, LMDB, RocksDB либо что-то еще.

Вам нужно самостоятельно изучать тему, делать выбор и расплачиваться за ошибки.

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

34. Сообщение от erthink (ok), 09-Фев-21, 10:51   +1 +/
> Ещё и минусы проставляет при каждом ответе, а себя плюсует. Ну это
> уже совсем клиника.

А так можно было? ща воспользуюсь ;)

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

35. Сообщение от Аноним (4), 09-Фев-21, 11:05   –1 +/
Умилительное притворство, да. Нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34 Ответы: #36

36. Сообщение от erthink (ok), 09-Фев-21, 11:09   +2 +/
> Умилительное притворство, да. Нет.

А может кто-нибудь просветить с алгоритмами работы движка форума.
Ну т.е. действительно можно голосовать за себя и многократно?

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

37. Сообщение от Аноним (4), 09-Фев-21, 11:11   –8 +/
Не вижу смысла продолжать. В будущем прошу воздержаться от ответов мне, я рассчитываю на ответы других участников. Которые будут иметь хоть какую-то полезную нагрузку, в отличие от вот этого.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33

38. Сообщение от Аноним (4), 09-Фев-21, 11:14   –3 +/
Не знаю насчёт многократно, но оценки появлялись через в течении пары минут и были очень уж односторонние. И это было не единожды. Возможно это тайный поклонник, конечно, а больше в этой новости некому обитать. Поэтому спишем на притворство.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #40

39. Сообщение от pansa2 (?), 09-Фев-21, 11:36   –2 +/
Да, хорошо бы такое ... выпиливать с гитхаба. Предлагаю флешмобчик в виде абьюзов. =)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32

40. Сообщение от Аноним (-), 09-Фев-21, 12:01   +7 +/
> а больше в этой новости некому обитать

Эй там, еще и я тут есть! Читать предметные посты тов. erthink было очень приятно несмотря на то что мои глубокие познания устройства БД заканчиваются как раз на BDB и LevelDB

А вот посты анона было не приятно читать, т.к. они бессодержательны и лишь отняли моё время.

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

41. Сообщение от Аноним (41), 09-Фев-21, 12:07   +/
Субдб либмдбх. Высокопроизводительный. Скороговорка. После 3-х стаканов.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #45

42. Сообщение от anonymous (??), 09-Фев-21, 12:14   +/
Ставить Ходорковского в один ряд с Гитлером -- это знать про Ходорковского из пропагандистских СМИ. А вообще в свободных лицензиях не должно быть ничего такого конечно же. Навязывать свои тараканы чужим -- это уже не свободная лицензия.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32 Ответы: #43

43. Сообщение от erthink (ok), 09-Фев-21, 12:20   +1 +/
> Ставить Ходорковского в один ряд с Гитлером -- это знать про Ходорковского
> из пропагандистских СМИ.

Ваше мнение является следствием других пропагандистских СМИ.
Тем не менее, там нет явного знака равенства (т.е. не нужно передергивать), а ограничение на длину не позволяет что-либо уточнить.

> А вообще в свободных лицензиях не должно быть
> ничего такого конечно же. Навязывать свои тараканы чужим -- это уже
> не свободная лицензия.

Читайте внимательно.
Это просьба, а не часть лицензий (которые явно указаны внутри каждого проекта).

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

44. Сообщение от Аноним (46), 09-Фев-21, 12:20   +/
>лицензию придумать чтоб копрорации не имели право использовать код

GNU GPL

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

45. Сообщение от erthink (ok), 09-Фев-21, 12:21   +1 +/
> Субдб либмдбх. Высокопроизводительный. Скороговорка. После 3-х стаканов.

Есть еще и "t1ha", так что лучше не пейте (тем более стаканами).

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

46. Сообщение от Аноним (46), 09-Фев-21, 12:22   +/
>а ограничение на длину не позволяет что-либо уточнить.

https://github.com/erthink/erthink

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

47. Сообщение от erthink (ok), 09-Фев-21, 12:24   +1 +/
> Очень хорошо . Только если рискнули на гитхабной помойке разрабатывать - закройте
> возможность гадить в код кому попало иначем мы вас потеряем очень
> скоро.

Не понял что вы хотели сказать.
В код кому-то гадить крайне сложно, нужны явные разрешения и некое понимание кода.

Ну и никакой особой разработки на github нет, это просто удобная и общеизвестная площадка, которая используется для:
- раздачи кода.
- взаимодействия с пользователями библиотеки и накопления "ачивок" (гитхабовых звездочек).
- прогона CI-тестов на условиях "для open source".

А после блокировки Крыма основным репо считается https://abf.io/erthink/libmdbx, о чем добавлены примечания.

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

48. Сообщение от Аноним (48), 09-Фев-21, 12:42   +/
Ты читать умеешь ?

ИСПОЛЬЗОВАТЬ, не только закрывать

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

49. Сообщение от Аноним (-), 09-Фев-21, 12:48   –1 +/
> Не понял что вы хотели сказать.
> В код кому-то гадить крайне сложно, н общеизвестная площадка

Общественный сартир. Никогда не знаешь какой баг тебе завезут "случайно" под видом поддержки windoz (кстати поддержку оно лучше выпилить в идеале не заявлять изначально). У меня уже музей проектов которые мы потеряли. То тут вдруг и неожиданно пофиксили что работать стало в тысячи раз медленнее, то тум вдруг буфер стал вылазить и ни один санитайзер не видит этого. Могу только посоветовать если не плевать на свое творчество (которое потеряешь когда принимаешь чужие комиты, точнее они становятся совладельцами и могут сыграть с тобой в демократические выборы, и всем будет чьхать что ты 99.9999% кода написал) .

Хороший же проект, опомнись пока не поздно !

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

50. Сообщение от erthink (ok), 09-Фев-21, 13:04   +/
> Хороший же проект, опомнись пока не поздно !

Все несколько проще:
- MDBX основывается на LMDB, поэтому лицензию уже не изменить (OpenLDAP Public License), вне зависимости от (не)принятия каких-либо коммитов.
- что касается MithrilDB, то вне зависимости от лицензии там будет Contribution Agreement.

Тем не менее, модель Open Source, как таковая, имеет свои как плюсы, так и минусы...

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

51. Сообщение от Наноним (?), 09-Фев-21, 13:27   +/
> MithrilDB

AdamantiumDB тоже свободно!

Вроде бы взрослый человек...

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

52. Сообщение от erthink (ok), 09-Фев-21, 13:38   +1 +/
>> MithrilDB
>AdamantiumDB тоже свободно!
>Вроде бы взрослый человек...

Так это же для пользователей, а они как дети - хотят тесла, яблоки всякие...

Но на всех не угодишь - тут вот какому-то дитяте тайтл "libmdbx" не нравился, а вам "мифрил".
Короче, сделайте усилие и привыкайте ;)

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

53. Сообщение от nuclightemail (??), 09-Фев-21, 15:08   +/
Вполне очевидно, что речь про:

> cadabra
> rrxmrrxmsx_0

а не константы хэшей - которые, впрочем, тоже можно было вынести в макросы.

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

54. Сообщение от erthink (ok), 09-Фев-21, 16:25   +/
>Вполне очевидно, что речь про:
>> cadabra
>> rrxmrrxmsx_0
>а не константы хэшей - которые, впрочем, тоже можно было вынести в макросы.

Это (пожалуй) предельно простой и прозрачный фрагмент кода, примерно как hello world, но не пример из учебника.
Его читаемость улучшит только знание что такое rrxmrrxmsx и чем может быть константа, а не приседания с вынесением "магических" констант в макросы.
Поэтому, пожалуйста, не надо делать что-то вроде code review настолько беспощадно (к себе).
Тем не менее, если вы хотите облагородить какие-то фрагменты кода, то я с радостью приму PR.

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

55. Сообщение от llolik (ok), 09-Фев-21, 16:29   +1 +/
> rrxmrrxmsx_0

Нет бы взяли да назвали RotateRotateXorMultiplyRotateRotateXorMultiplyShiftXor_0, да. Это общепринятые сокращения, а не авторский стиль.

https://github.com/martinus/better-faster-stronger-mixer

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

56. Сообщение от жабабыдлокодер (ok), 09-Фев-21, 16:35   +/
erthink, а API по сравнению с lmdb сильно изменено? Чем-то вроде https://github.com/lmdbjava/lmdbjava удастся воспользоваться или биндинг самому писать придется?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #58, #61

57. Сообщение от Наноним (?), 09-Фев-21, 16:43   +/
Ну да, ну да. Это пользовательское бессознательное шутить изволит.
Побойтесь Зевса!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52

58. Сообщение от erthink (ok), 09-Фев-21, 16:58   +/
> erthink, а API по сравнению с lmdb сильно изменено? Чем-то вроде https://github.com/lmdbjava/lmdbjava
> удастся воспользоваться или биндинг самому писать придется?

API существенно расширено и в паре мест принципиально изменено (время жизни и требования явно закрывать курсоры, время жизни DBI хендлов).
Но всё такие изменения (включая причины) описаны в доке.

Поэтому биндинги на 95% получаются путем замены префиксов.

Кроме этого, в README есть ссылки на существующие привязки. Там есть и для Явы, хотя порядком протухшие.
Есть от чего оттолкнуться.

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

59. Сообщение от Аноним (-), 09-Фев-21, 17:04   +/
минусы тебе, хамлу тyпopылому, ставлю я в том числе
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34

60. Сообщение от жабабыдлокодер (ok), 09-Фев-21, 17:07   +/
Спасибо. Разбираться и писать самому увы, времени нет...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #58

61. Сообщение от erthink (ok), 09-Фев-21, 17:08   +/
Если вдруг сподвигнитесь на собственные байдинги, то большая просьба глянуть на новое C++ API и "повторить на яве" ради унификации. При этом сейчас ещё можно обсуждать и встречно менять плюсовое API.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #56

62. Сообщение от Энон (?), 09-Фев-21, 19:45   –11 +/
вопрос из 4-х (четырёх!) слов... Ответ такого объёма, что первая мысль -- иди на [запрет в интернете]
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #63

63. Сообщение от erthink (ok), 09-Фев-21, 19:46   +5 +/
> вопрос из 4-х (четырёх!) слов... Ответ такого объёма, что первая мысль --
> иди на [запрет в интернете]

Дак идите, не задерживайте очередь

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

64. Сообщение от andy (??), 09-Фев-21, 21:11   +/
Поклонники Сороса, Ходорковского и Бандеры не используют Ваши продукты?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #68

65. Сообщение от andy (??), 09-Фев-21, 21:13   +/
> А после блокировки Крыма основным репо считается https://abf.io/erthink/libmdbx, о чем добавлены > примечания.

Это просто камни с неба! Но им то что? Они же в родной гавани!
  

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

68. Сообщение от rico (ok), 10-Фев-21, 00:10   –1 +/
Они очень страдают морально и финансово, но нет. Не используют.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #64

69. Сообщение от Tifereth (ok), 10-Фев-21, 03:45   +/
В подвале сайта стоит

ROSA Lab © 2021

при этом и rosalab.com, и rosalinux.com недоступны. Хотя жив wiki.rosalab.com - подправили бы подвал, что ли...

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

70. Сообщение от Аноним (21), 10-Фев-21, 07:30   +/
спасибо
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

72. Сообщение от Аноним (72), 10-Фев-21, 11:01   +/
> при этом и rosalab.com, и rosalinux.com недоступны. Хотя жив wiki.rosalab.com - подправили бы подвал, что ли...

РОСА всегда жила в зоне *.ru, а не *.com

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

74. Сообщение от adolfus (ok), 10-Фев-21, 11:33   –2 +/
До BerkeleyDB этому поделию, как до Луны раком. Оно даже на база данных, а обычный ретривер. BerkeleyDB поддерживает ISAM и полностью ACID. Это единственная нормальная не SQL база данных.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #77

75. Сообщение от Аноним (75), 10-Фев-21, 11:34   +1 +/
Почему Miranda NG переходит на SQLite, если MDBX так хороша?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #78, #81

76. Сообщение от anonymous (??), 10-Фев-21, 11:37   +/
> Ваше мнение является следствием других пропагандистских СМИ.

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

> там нет явного знака равенства

Я и не говорил, что он там есть.

> Это просьба, а не часть лицензий (которые явно указаны внутри каждого проекта).

Я и не говорил "убрать из лицензии" или как либо иначе о том, что оно есть в лицензии. Я лишь говорю, что такого в свободных лицензиях быть не должно.
Читайте внимательнее.

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

77. Сообщение от erthink (ok), 10-Фев-21, 12:07   +2 +/
> До BerkeleyDB этому поделию, как до Луны раком.
> Оно даже на база данных, а обычный ретривер.

Без обид, но чушь.
Видимо от незнания/недопонимания.

> BerkeleyDB поддерживает ISAM и полностью ACID. Это
> единственная нормальная не SQL база данных.

Так было лет ~30 назад. Процитирую аргументацию, которую не нашлось кому опровергнуть:

BerkeleyDB — очень старый продукт в области, которая активно развивалась в последнее время, перенесла несколько революций и родила массу альтернатив с учетом набитых шишек. Лучшее враг хорошего и сейчас при (пожалуй) любом наборе критериев можно выбрать альтернативу превосходящую BerkeleyDB. К этому добавляется ряд проблем/недочетов: плохая производительность и/или deadlock-и при конкурентной обработки транзакций, полу-ручное восстановление БД после падений, смена лицензии на AGPL (неприемлема для некоторых проектов).

BerkeleyDB является встраиваемым движком хранения, но предлагает больше чем key-value. В результате получился комбайн, у которого что-то не так с каждой из features. Поэтому в последние годы (несмотря на усилия и деньги Oracle) разработчики предпочитают мигрировать с BerkeleyDB, когда им нужна хотя-бы одна features (производительность, надежность, масштабируемость, репликация, шифрование и т.д.) на актуальном для индустрии уровне.

Сомнительным, но всё-же аргументом, стало то, что при всей "чудесности" BerkeleyDB (исходя из проспектов Oracle) удаленный из MySQL 5.1 бэкенд хранение так и не был возвращен (работы и багов много, а толку нет).

--

В подтверждение, по списку https://en.wikipedia.org/wiki/Berkeley_DB#Past_users (который далеко не полный) видно, что от BerkeleyDB бегут все кому нужно что-то не-глючное, надежное и производительное.

А если сравнивать MDBX/LMDB c BerkeleyDB, то в той-же Википедии также неплохо сформулировано:
"... over recent years many well-known projects switched to using LMDB, because it outperform Berkeley DB in key scenarios on the ground of "less is more" design, as well due to the license changing."
Отсюда https://en.wikipedia.org/wiki/Embedded_database#Oracle_Berke...

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

78. Сообщение от erthink (ok), 10-Фев-21, 13:32   +/
> Почему 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.

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

79. Сообщение от Tifereth (ok), 10-Фев-21, 14:33   +/
>> при этом и rosalab.com, и rosalinux.com недоступны. Хотя жив wiki.rosalab.com - подправили бы подвал, что ли...
> РОСА всегда жила в зоне *.ru, а не *.com

Ну тогда им точно нужно малость починить сайт. На главной

https://abf.io/

в подвале стоит вот что:

[a href="http://www.rosalab.com/about"]About the company[/a]

(нормальные теги по понятной причине поставить не могу)

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

80. Сообщение от anonymous (??), 10-Фев-21, 22:18   +/
А где граница между корпорацией и ООО из двух человек?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48

81. Сообщение от AnonPlus (?), 10-Апр-21, 02:24   +/
Две причины:

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

- под SQLite есть тонна внешних утилит для работы с базами, пользователи это очень хотят

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

82. Сообщение от AnonPlus (?), 10-Апр-21, 02:25   +/
В следующем выпуске именно переход, т.к. mdbx-базы будут только читаться, создавать новые уже запрещено.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #78


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

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




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

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