The OpenNET Project / Index page

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



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

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

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

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

Оглавление

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


1. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  –17 +/
Сообщение от data man (ok), 09-Май-21, 22:01 
mdbx.c++ -> mdbx.cpp
mdbx.h++ -> mdbx.hpp

Не буду пользоваться, пока так не сделаете. :-D

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

2. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +2 +/
Сообщение от erthink (ok), 09-Май-21, 22:06 
MithrilDB на Rust зарелизится раньше ;)
Ответить | Правка | Наверх | Cообщить модератору

18. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  –9 +/
Сообщение от data man (ok), 10-Май-21, 00:28 
Неужели необходимо объяснять, что это не общепринятые расширения, и куча программ по-умолчанию их просто не поддерживает?

Спасибо за минусы, ничего другого тут и не ожидалось.

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

21. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +3 +/
Сообщение от erthink (ok), 10-Май-21, 01:12 
> Неужели необходимо объяснять, что это не общепринятые расширения, и куча программ их
> просто не поддерживает?
> Спасибо за минусы, ничего другого тут и не ожидалось.

Минусы не мои.

с++ и h++ = один из _стандартных_ вариантов для файлов с исходными текстами на C++.
Исторически эти расширения не получили распространения из-за унаследованных ограничений на всяких старых и (теперь уже) вымерших системах.
Весь приличный софт давно их поддерживает, например gcc и clang автоматически выбирают/запускают компилятор С++.

Если по какой-то причине это вам неудобно, то вы всегда можете переименовать файлы локально, и т.п.

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

26. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +3 +/
Сообщение от Ordu (ok), 10-Май-21, 07:23 
> Неужели необходимо объяснять, что это не общепринятые расширения, и куча программ по-умолчанию их просто не поддерживает?

Да, надо. Приведи пример программы, которая это не поддерживает.

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

30. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  –9 +/
Сообщение от data man (ok), 10-Май-21, 09:28 
> Да, надо.
> Приведи

На сегодня бисер закончился. Может быть, завтра.
После *вежливой* просьбы.

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

41. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +2 +/
Сообщение от Ordu (ok), 10-Май-21, 13:00 
> На сегодня бисер закончился. Может быть, завтра.

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

> После *вежливой* просьбы.

... вежливо сообщаю тебе, что ты несёшь bullshit.

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

3. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +7 +/
Сообщение от Аноним (3), 09-Май-21, 22:06 
mdbx.c++/h++ -> mdbx.rs

Не буду пользоваться, пока так не сделаете. :-D

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

48. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  –2 +/
Сообщение от Аноним (48), 10-Май-21, 15:25 
Только после того как на Zig перепишут
Ответить | Правка | Наверх | Cообщить модератору

68. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  –1 +/
Сообщение от Аноним (68), 11-Май-21, 12:52 
mdbx.c++/h++ -> mdbx.js
Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

4. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  –3 +/
Сообщение от Аноним (4), 09-Май-21, 22:08 
бинарь же не меняется от этого. похожая ситуация и с .htm, который по факту ничем не отличается от привычного .html
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

5. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +/
Сообщение от data man (ok), 09-Май-21, 22:24 
Один анонимный эксперт по факту ничем не отличается от другого.
Они очень похожи в разных ситуациях.
Ответить | Правка | Наверх | Cообщить модератору

6. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  –5 +/
Сообщение от Аноним (6), 09-Май-21, 22:31 
Какая гадость, должно быть cxx/hxx чтобы не вызывать отвращения.
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

29. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +/
Сообщение от bergentroll (ok), 10-Май-21, 08:32 
c××
Ответить | Правка | Наверх | Cообщить модератору

32. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +1 +/
Сообщение от немосапиенс (?), 10-Май-21, 09:45 
.сипп или .си++
Ответить | Правка | Наверх | Cообщить модератору

55. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +/
Сообщение от adolfus (ok), 10-Май-21, 21:13 
с++ -- си-кросс-кросс
а cpp -- это что?

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

63. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +/
Сообщение от funny.falcon (?), 11-Май-21, 09:38 
p - в смайликах это высунутый язык. Типа, "беее".

Т.о. cpp - сибеебее

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

67. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +/
Сообщение от Аноним (68), 11-Май-21, 12:49 
>mdbx.c++ -> mdbx.cpp
>mdbx.h++ -> mdbx.hpp

Windows(TM) в такие имена не может?

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

71. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +/
Сообщение от erthink (ok), 11-Май-21, 15:35 
>>mdbx.c++ -> mdbx.cpp
>>mdbx.h++ -> mdbx.hpp
> Windows(TM) в такие имена не может?

Может давным-давно, и всё это проверяется на CI.

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

7. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +1 +/
Сообщение от Аноним (6), 09-Май-21, 22:33 
А у сабжа тоже компайлтайм лимиты? Вот у leveldb их нет (во всяком случае не 100 байт или сколько там).
Ответить | Правка | Наверх | Cообщить модератору

10. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +1 +/
Сообщение от erthink (ok), 09-Май-21, 23:07 
$ make options
## TIP: Use `make V=1` for verbose.
  INSTALL      =install
  DESTDIR      =
  prefix       =/usr/local
  mandir       =/usr/local/man
  suffix       =

  CC           =cc
  CFLAGS_EXTRA =
  CFLAGS       =-std=gnu11 -O2 -g -Wall -Werror -Wextra -Wpedantic -ffunction-sections -fPIC -fvisibility=hidden -pthread -Wno-error=attributes
  CXX          =g++
  CXXSTD       =-std=gnu++2a
  CXXFLAGS     =-std=gnu++2a -O2 -g -Wall -Werror -Wextra -Wpedantic -ffunction-sections -fPIC -fvisibility=hidden -pthread -Wno-error=attributes

  LD           =ld
  LDFLAGS      =-Wl,--gc-sections,-z,relro,-O1
  EXE_LDFLAGS  =-pthread
  LIBS         = -lrt

  MDBX_BUILD_OPTIONS =-DNDEBUG=1

## Assortment items for MDBX_BUILD_OPTIONS:
##   Note that the defaults should already be correct for most platforms;
##   you should not need to change any of these. Read their descriptions
##   in README and source code (see src/options.h) if you do.
  MDBX_DISABLE_GNU_SOURCE
  MDBX_OSX_SPEED_INSTEADOF_DURABILITY
  MDBX_ENV_CHECKPID
  MDBX_TXN_CHECKOWNER
  MDBX_TRUST_RTC
  MDBX_ENABLE_REFUND
  MDBX_ENABLE_PGOP_STAT
  MDBX_ENABLE_MADVISE
  MDBX_DISABLE_PAGECHECKS
  MDBX_PNL_PREALLOC_FOR_RADIXSORT
  MDBX_DPL_PREALLOC_FOR_RADIXSORT
  MDBX_WITHOUT_MSVC_CRT
  MDBX_ENVCOPY_WRITEBUF
  MDBX_FORCE_ASSERTIONS
  MDBX_ASSUME_MALLOC_OVERHEAD
  MDBX_DEBUG
  MDBX_USE_VALGRIND
  MDBX_HAVE_C11ATOMICS
  MDBX_LOCKING
  MDBX_USE_OFDLOCKS
  MDBX_USE_SENDFILE
  MDBX_USE_COPYFILERANGE
  MDBX_USE_SYNCFILERANGE
  MDBX_CPU_WRITEBACK_INCOHERENT
  MDBX_MMAP_INCOHERENT_FILE_WRITE
  MDBX_MMAP_INCOHERENT_CPU_CACHE
  MDBX_64BIT_ATOMIC
  MDBX_64BIT_CAS
  MDBX_UNALIGNED_OK
  MDBX_CACHELINE_SIZE

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

12. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  –1 +/
Сообщение от Аноним (6), 09-Май-21, 23:20 
Я не вижу тут MAXKEYSIZE, сколько там захадкожено? 4кб хотя бы влезет?
Ответить | Правка | Наверх | Cообщить модератору

14. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +1 +/
Сообщение от erthink (ok), 09-Май-21, 23:40 
см. https://github.com/erthink/libmdbx/blob/master/README.md#lim...

Т.е. "немного лучше" чем у Oracle, см. https://blogs.oracle.com/sql/how-to-fix-ora-01450-maximum-ke...

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

19. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +/
Сообщение от Аноним (6), 10-Май-21, 00:33 
Насколько негативно скажется увеличение размера страницы, в частности, на производительности? 65к это вроде бы достаточно для большинства применений.
Ответить | Правка | Наверх | Cообщить модератору

20. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +/
Сообщение от Аноним (6), 10-Май-21, 00:36 
Хотя всё равно ограничения, у левелдб хоть мегабайты пихай.
Ответить | Правка | Наверх | Cообщить модератору

22. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +1 +/
Сообщение от erthink (ok), 10-Май-21, 01:36 
> у левелдб хоть мегабайты пихай.

Ну засунуть-то можно, толку только мало.
Этакий неуловимый джо наоборот ;)

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

11. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  –1 +/
Сообщение от YetAnotherOnanym (ok), 09-Май-21, 23:20 
А есть какий-нибудь носкуль сервер на сабже?
Ответить | Правка | Наверх | Cообщить модератору

13. "Re: А есть какий-нибудь носкуль сервер на сабже?"  +1 +/
Сообщение от Ilya Evseev (?), 09-Май-21, 23:34 
> А есть какий-нибудь носкуль сервер на сабже?

ardb умеет использовать LMDB.
Скорее всего, после небольшой доработки mdbx тоже сумеет.

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

16. "Re: А есть какий-нибудь носкуль сервер на сабже?"  +1 +/
Сообщение от YetAnotherOnanym (ok), 09-Май-21, 23:54 
Спасибо!
Ответить | Правка | Наверх | Cообщить модератору

15. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +1 +/
Сообщение от erthink (ok), 09-Май-21, 23:54 
Когда-то давно Ховард баловался с https://github.com/LMDB/sqlightning.
Там что-то вполне рабочее, но много собственных тестов SQLite не проходит.

Потом (вроде-бы) по мотивам этого PoC сделали https://github.com/LumoSQL/lumosql.
Сам не пробовал, но теоретически оно рабочее и за пару дней можно пересадить с LMDB на MDBX.

Еще есть https://github.com/PositiveTechnologies/libfpta с табличками, колонками, индексами..., но без SQL.

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

17. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +/
Сообщение от YetAnotherOnanym (ok), 10-Май-21, 00:08 
Спасибо!
Ответить | Правка | Наверх | Cообщить модератору

23. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  –1 +/
Сообщение от Аноним (48), 10-Май-21, 05:48 
В чём отличие от RocksDB? Можно ли использовать как storage backend для SQL или Object базы данных?
Ответить | Правка | Наверх | Cообщить модератору

33. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +1 +/
Сообщение от erthink (ok), 10-Май-21, 10:10 
> В чём отличие от RocksDB?

RocksDB - это ДЫЬ (https://ru.wikipedia.org/wiki/LSM-%D0%B4%D0&#... с дополнительними читами и фичами.

MDBX - это B+Tree (https://ru.wikipedia.org/wiki/B%E2%81%BA-... со своими читами и фичами.
Отличий как в плюс, так и в минус, очень много чтобы писать здесь, но в Сети есть масса информации.
Можете начать с https://github.com/erthink/libmdbx#comparison-with-other-dat... и https://www.opennet.dev/openforum/vsluhforumID3/121987.html#43

> Можно ли использовать как storage backend для SQL или Object базы данных?

Да можно, если что-то "прикрутить", см https://www.opennet.dev/openforum/vsluhforumID3/124185.html#15

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

40. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +1 +/
Сообщение от erthink (ok), 10-Май-21, 12:25 
s/ДЫЬ/LSM-tree/
Ответить | Правка | Наверх | Cообщить модератору

24. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +/
Сообщение от Аноним (48), 10-Май-21, 06:50 
Это, конечно, впечатляет https://www.github.com/lmdbjava/benchmarks/tree/master/resul...

Интересно посмотреть что-нибудь посвежее и для SSD

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

35. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +3 +/
Сообщение от erthink (ok), 10-Май-21, 10:21 
Принципиально ничего не изменилось.

Если вычесть ожидание дисковых операций (например запустить в /dev/shm или на RAM-диске), то MDBX/LMDB как-правило оказываются быстрее, ибо
- OlogN от b+tree;
- очень мало лишних действий (оверхеда);
- zerocopy и неблокируемое чтение с масштабированием по ядрам.

С учетом дисковых операций всё в них родимых и упирается. При этом у MDBX/LMDB амплификация записи в точности равна высоте дерева, т.е. тоже OlogN.

Соответственно, принципиальных изменений в бенчмарках нет, так как не меняются эти слагаемые и их пропорции.

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

25. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +/
Сообщение от Аноним (48), 10-Май-21, 06:57 
На 20-30% быстрее чем master LMDB? Мне кажется вы не тестировали давно, а берёте старые цифры.

Что насчёт новейших версий LMDB? Там же тоже код активно пилится, как я понял.

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

36. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +1 +/
Сообщение от erthink (ok), 10-Май-21, 10:42 
> На 20-30% быстрее чем master LMDB? Мне кажется вы не тестировали давно, а берёте старые цифры.
> Что насчёт новейших версий LMDB? Там же тоже код активно пилится, как я понял.

Во-первых, на всякий (чтобы не упрекали в читерстве): 20-30% получается если оценивать скорость работы самих движков (без учета дисков) и отключить в MDBX дополнительный контроль (корректности операций и данных в БД).

В новых версиях нет ничего, чтобы позволяло LMDB становиться быстрее.
Буквально там примерно следующее:
- поддержка чтения больших БД на 32-битных системах (MDB_VL32), что существенно замедляет движок, так как требуете поддерживать кеш "окон отображения" файла БД в ОЗУ.
- поддержка шифрования, что требует дополнительных затрат на поддержку кеша прочитанных/расшифрованных страниц БД.
- добавление txn_id в заголовок страниц для определения их "грязного" статуса, но в MDBX txn_id был добавлен давным-давно.

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

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

27. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  –1 +/
Сообщение от Аноним (48), 10-Май-21, 07:40 
Что скажете про это https://github.com/spacejam/sled? Сравнивали, тестировали?
Ответить | Правка | Наверх | Cообщить модератору

39. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +2 +/
Сообщение от erthink (ok), 10-Май-21, 12:22 
> то скажете про это https://github.com/spacejam/sled? Сравнивали, тестировали?

80% ответа есть в https://github.com/spacejam/sled?#known-issues-warnings

Остальные 20% примерно такие:

1) В сценариях с интенсивным чтением превосходство будет у MDBX, ибо оверхеда и блокировок примерно 0.

2) В MDBX нет WAL - это принципиальный осознанный архитектурный выбор (унаследованный от LMDB) со своими минусами и плюсами.
Поэтому MDBX будет ожидаемо проигрывать в одних сценариях  и выигрывать в других.
Соответственно, вопрос тут не в том "кто круче/быстрее", а насколько некий (условно ваш) сценарий использования соответствует свойствам/назначению того или иного движка.

3) Авторы sled пускаются во все тяжкие с lockfree, rw-локами и atomic-операциями ради более-менее параллельного выполнения читающих и пишущих транзакций..., и всё это поверх смеси b-tree с lsm, приправленное массой дополнительных фишек и фичей.
Теоретически такое можно отладить, довести до production стабильность и производительность.
На практике же буду баги, время воспроизведения которых в разы больше времени жизни соответствующей версии кода.

Другими словами, sled = концептуально интересно и действительно может дать существенный "выхлоп", но есть существенные риски что проект никогда не дойдет до production-готовности (см https://github.com/spacejam/sled/issues).

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

28. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  –2 +/
Сообщение от Аноним (28), 10-Май-21, 08:06 
> введённые правительством США санкции против Positive Technologies не оказывают какого-либо заметного влияния.

GitHub еще не заблокировали?... недоработка...

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

42. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +/
Сообщение от Lefsha (ok), 10-Май-21, 13:40 
Не совсем в тему, но...

git clone https://abf.io/erthink/ReOpenLDAP.git reopenldap
Cloning into 'reopenldap'...
remote: Enumerating objects: 43000, done.
remote: Counting objects: 100% (43000/43000), done.
remote: Compressing objects: 100% (10332/10332), done.
remote: Total 43000 (delta 33292), reused 42174 (delta 32471)
Receiving objects: 100% (43000/43000), 19.13 MiB | 8.62 MiB/s, done.
Resolving deltas: 100% (33292/33292), done.
fatal: bad object 00000000000000007c000000770000006e000000
fatal: remote did not send all necessary objects

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

44. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +/
Сообщение от Урри (ok), 10-Май-21, 13:41 
У тебя место на диске закончилось.
Ответить | Правка | Наверх | Cообщить модератору

46. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  –1 +/
Сообщение от Lefsha (ok), 10-Май-21, 13:48 
Не похоже.
Другие работают в этом же месте.
Ответить | Правка | Наверх | Cообщить модератору

45. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  –1 +/
Сообщение от Lefsha (ok), 10-Май-21, 13:44 
Тоже самое на github
Ответить | Правка | К родителю #42 | Наверх | Cообщить модератору

47. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +2 +/
Сообщение от erthink (ok), 10-Май-21, 14:01 
> Тоже самое на github

$ git clone https://github.com/erthink/ReOpenLDAP.git
Клонирование в «ReOpenLDAP»…
remote: Enumerating objects: 43000, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 43000 (delta 0), reused 1 (delta 0), pack-reused 42997
Получение объектов: 100% (43000/43000), 24.88 MiB | 2.04 MiB/s, готово.
Определение изменений: 100% (32830/32830), готово.

$ cd ReOpenLDAP/
$ git fsck
Проверка каталогов объектов: 100% (256/256), готово.
Проверка объектов: 100% (43000/43000), готово.

$ git --version
git version 2.27.0

Аналогично с https://abf.io/erthink/ReOpenLDAP.git и git 2.31.1

---

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

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

49. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +1 +/
Сообщение от Lefsha (ok), 10-Май-21, 17:39 
Кажется выяснилось. проблема проявляется в следущих версиях GIT

=dev-vcs/git-2.31.1
=dev-vcs/git-2.31.0-r1

Откат на 2.30.2 устранил проблему.

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

52. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +/
Сообщение от Аноним (48), 10-Май-21, 19:01 
Я так понимаю ACID работает для многопоточности.

А как быть с многопроцессорностью - например когда запускается два экземпляра одного приложения (GUI)? И оба, естественно, полезут в одну БД (по одному пути)

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

53. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +2 +/
Сообщение от erthink (ok), 10-Май-21, 19:30 
> Я так понимаю ACID работает для многопоточности.
>  А как быть с многопроцессорностью - например когда запускается два экземпляра
> одного приложения (GUI)? И оба, естественно, полезут в одну БД (по
> одному пути)

RTFM https://github.com/erthink/libmdbx/blob/master/README.md#lib...

- в 1-ов пункте: "Allows a swarm of multi-threaded processes to ACIDly read and update several key-value maps and multimaps in a locally-shared database.", т.е. с много-процессностью всё также хорошо как и с много-поточностью.

- в 5-ом пункте: "Enforces serializability for writers... affords wait-free for parallel readers without atomic/interlocked operations, while writing and reading transactions do not block each other", т.е. все пишущие транзакции выполняются строго последовательно, а читающие не блокируются.

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

54. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +1 +/
Сообщение от Аноним (48), 10-Май-21, 20:00 
Беру! Спасибо за подробные ответы, очень полезно
Ответить | Правка | Наверх | Cообщить модератору

56. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +/
Сообщение от adolfus (ok), 10-Май-21, 21:15 
курсоры и вторичные ключи есть?

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

57. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +/
Сообщение от erthink (ok), 10-Май-21, 21:22 
> курсоры и вторичные ключи есть?

Курсоры есть, а вторичных ключей в key-value не бывает (для этого есть https://github.com/erthink/libfpta).

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

65. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +/
Сообщение от adolfus (ok), 11-Май-21, 10:45 
Нет руководства по программированию с использованием этого ПО
Также настораживает:
> Операции изменения данных никак не блокируют читателей.

Это не очень понятно. Что прочитает "читатель" если "писатель" не завершит изменение? Запись в объект должна блокировать чтение из объекта на время исполнения записи. Тем более, если, как Вы говорите, имеется поддержка вторичных ключей.

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

66. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +/
Сообщение от erthink (ok), 11-Май-21, 12:06 
> Нет руководства по программированию с использованием этого ПО.

RTFM https://erthink.github.io/libmdbx/usage.html#starting

> Также настораживает:
> > Операции изменения данных никак не блокируют читателей.

RTFM https://github.com/erthink/libmdbx/blob/master/README.md#fea... среди прочего, там есть строки:
- Fully ACID-compliant, through to MVCC and CoW.
- Readers are non-blocking, notwithstanding snapshot isolation.

Со ссылками на пояснения что такое ACID, MVCC, CoW и snapshot isolation.
Кроме этого, см. https://ru.bmstu.wiki/LMDB_(Lightning_Memory-Mapped_Database) - вся эта информация в принципе применима к libmdbx, ибо "Historically, libmdbx is a deeply revised and extended descendant of the Lightning Memory-Mapped Database" (https://github.com/erthink/libmdbx/blob/master/README.md#his....

> Это не очень понятно. Что прочитает "читатель" если "писатель" не завершит изменение?

RTFM: ACID предполагает транзакции с изоляцией, т.е. читатели видят результаты только успешно завершенных транзакций.

> Запись в объект должна блокировать чтение из объекта на время исполнения записи.

RTFM: MVCC, snapshot isolation, page shadowing and CoW.
До фиксации транзакции писатель изменяет копию данных, которая не видна читателям.
Примерно как https://ru.wikipedia.org/wiki/Read-copy-update

> Тем более, если, как Вы говорите, имеется поддержка вторичных ключей.

Еще раз:
- в key-value не может быть вторичны ключей, ибо тогда это не key-value просто по определению.
- типизированные колонки, nullable, вторичные ключи, составные индексы - реализованы в https://github.com/PositiveTechnologies/libfpta поверх libmdbx.

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

58. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  –2 +/
Сообщение от Аноним (58), 10-Май-21, 22:10 
>а введённые правительством США санкции против Positive Technologies не оказывают какого-либо заметного влияния.

Ну это пока ... В уважаемых транснациональных компаниях давно уже требуют перед заключением договора заявления, что сама фирма не внесена ни в один санкционный список, и что продукция и услуги, поставленные по договорам, не будут переданы в руки лиц и компаний, находящихся в санкционных списках. Так что вангую, что с GH вас рано или поздно выкинут, а вместо врнды придётся довольствоваться реактосью. В прочем это к лучшему, наконец-то реактось до юзабельного состояния допилят.

P. S. Не брат ты мне.

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

59. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +/
Сообщение от erthink (ok), 10-Май-21, 22:46 
>>а введённые правительством США санкции против Positive Technologies не оказывают какого-либо заметного влияния.
> Ну это пока ... В уважаемых транснациональных компаниях давно уже требуют перед
> заключением договора заявления, что сама фирма не внесена ни в один
> санкционный список, и что продукция и услуги, поставленные по договорам, не
> будут переданы в руки лиц и компаний, находящихся в санкционных списках.

Воистину, причём все эти (само)уважаемые "транснациональные компании" целиком где-то на "глобусе украины".

> Так что вангую, что с GH вас рано или поздно выкинут,
> а вместо врнды придётся довольствоваться реактосью. В прочем это к лучшему,
> наконец-то реактось до юзабельного состояния допилят.

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

;)

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

62. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +/
Сообщение от Аноним (58), 10-Май-21, 23:25 
>Воистину, причём все эти (само)уважаемые "транснациональные компании" целиком где-то на "глобусе украины".

Ну верно, це Європа ведь, соответственно и глобус с Европой и Гермашкой. Не то что глобус Великой прекрасной России с Нашим Севером.

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

60. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +/
Сообщение от erthink (ok), 10-Май-21, 22:50 
А если серьезно, то см https://tv.rbc.ru/archive/ekskluziv/609155ee2ae596b067b3745b

Юрий там очень хорошо всё рассказал.

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

61. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +/
Сообщение от Аноним (58), 10-Май-21, 23:19 
>Some results may have been delisted consistent with local laws

А телек я не смотрю ни в каком виде.

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

64. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +1 +/
Сообщение от bOOster (ok), 11-Май-21, 09:38 
Поведение в стиле одноименного действия страуса никогда никого к добру не приводило.
Ответить | Правка | Наверх | Cообщить модератору

70. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  –3 +/
Сообщение от Аноним (68), 11-Май-21, 13:01 
А, ну смотрите регулярно шоу Соловьёва, станете добрее.
Ответить | Правка | Наверх | Cообщить модератору

72. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +/
Сообщение от bOOster (ok), 12-Май-21, 06:44 
> А, ну смотрите регулярно шоу Соловьёва, станете добрее.

Ну и зачем нам врать про "не смотрю ТВ ни в каком виде" если в курсе за такие ШОУ? Я, например, смотрю ТВ, но ниразу не в курсе за такие ШОУ.

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

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

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




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

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