Wara ħames snin ta 'żvilupp, it-tieni kandidat għar-rilaxx libmdbx 1.0 ġie ppubblikat

Disponibbli для тестирования второй кандидат в релизы библиотеки libmdbx с реализацией высокопроизводительной, компактной встраиваемой базой данных класса ключ-значение. Текущая версия (0.5) является техническим релизом, отмечает завершение каких-либо доработок и переход к фазе публичного финального тестирования и стабилизации, с последующем формированием первого полноценного релиза библиотеки. Код libmdbx imqassma minn под лицензией OpenLDAP Public License.

Библиотека MDBX является существенно переработанным ответвлением от LMDB — DBMS inkorporat transazzjonali tal-klassi “key-value” ibbażata fuq siġra B+ mingħajr logging proattiv, которая позволяет многопоточным процессам конкурентно и эффективно работать с локально-разделяемой (не сетевой) БД. В свою очередь MDBX быстрее и надёжнее LMDB, и при этом сохраняет все ключевые возможности своего прародителя, такие как ACID и неблокирующее чтение с линейным масштабированием по ядрам CPU.

L-aktar differenzi importanti bejn MDBX u LMDB:

  • Fundamentalment, tingħata aktar attenzjoni lill-kwalità tal-kodiċi, l-ittestjar u l-kontrolli awtomatiċi.
  • Kontroll b'mod sinifikanti aktar waqt it-tħaddim, mill-iċċekkjar tal-parametri għall-verifika interna tal-istrutturi tad-database.
  • Kompatifikazzjoni awtomatika u ġestjoni awtomatika tad-daqs tad-database.
  • Format ta 'database wieħed għal assemblaġġi ta' 32-bit u 64-bit.
  • Stima tal-volumi tal-kampjuni b'meded (stima ta' mistoqsija tal-firxa).
  • Appoġġ għal ċwievet kbar darbtejn daqs pancakes u daqs tal-paġna tad-database li jista 'jagħżel mill-utent.

Выпущенный кандидат в релизы libmdbx является результатом принятого в августе 2019 решения о разделении проектов MDBX и MithrilDB. При этом в libmdbx было решено устранить (рациональный) максимум технического долга и стабилизировать библиотеку. По факту в обозначенном направлении сделано в 2-3 раза больше, чем оценивалось и планировалось исходно:

  • Реализована поддержка macOS и платформ «второго эшелона»: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. Поддержка AIX и HP-UX может быть добавлена при необходимости.
  • Проведена санация кода при помощи Undefined Behavior Sanitizer и Address Sanitizer, устранены все предупреждения при сборке с «-Wpedantic», все предупреждения Coverity Static Analyzer и т.д.
  • Aġġornament Deskrizzjonijiet tal-API.
  • Слияние (амальгамация) исходного кода для удобства встраивания.
  • CMake appoġġ.
  • Appoġġ għal transazzjonijiet nested.
  • L-użu ta' bootid biex jiddetermina jekk l-OS reġa' rebooteja (waqfien tad-database maħmuġin).
  • Сквозной подсчёт обновлённых/старых страниц и расширенная информация о транзакциях.
  • Għażla MDBX_ACCEDE għall-konnessjoni ma' database diġà miftuħa f'mod kompatibbli.
  • Użu Imblukkar tal-OFD meta disponibbli.
  • Backup sħun fil-pajp.
  • Специализированный оптимизированный алгоритм внутренней сортировки (до 2-3 раз быстрее «qsort()» и до 30% быстрее «std::sort()»).
  • It-tul massimu taċ-ċavetta żdied.
  • Kontroll awtomatiku tal-qari bil-quddiem (strateġija tal-caching tal-fajls tad-database fil-memorja).
  • Auto-kompattifikazzjoni aktar aggressiva u aktar mgħaġġla.
  • Strateġija aktar ottimali għall-għaqda tal-paġni tas-siġar B+.
  • Контроль нелокальных файловых систем (NFS, Samba и т.п.) для предотвращения повреждения БД при неверном использовании.
  • Is-sett ta' testijiet ġie estiż.

L-iżvilupp tal-verżjoni "li jmiss" ta' libmdbx se jkompli bħala proġett separat MithrilDB, filwaqt li l-vettur ta 'żvilupp tal-verżjoni "kurrenti" ta' MDBX huwa mmirat biex jiffriża s-sett ta 'karatteristiċi u jistabbilizzah. Din id-deċiżjoni ttieħdet għal tliet raġunijiet:

  • Totalment inkompatibbli: MithrilDB jeħtieġ format ta' fajl tad-database differenti (inkompatibbli) u API differenti (inkompatibbli) biex timplimenta l-karatteristiċi kollha ppjanati.
  • Kodiċi sors ġdid: Il-kodiċi sors MithrilDB sar liċenzjat indipendenti minn LMDB, u l-proġett innifsu huwa ppjanat li jiġi ppubblikat taħt liċenzja differenti (approvata minn JEW JEKK лицензией Apache 2.0, а не Liċenzja Pubblika OpenLDAP).
  • Разделение позволяет избежать потенциальную путаницу, внести больше определённости и обеспечить независимость пути развития проектов.

MithrilDB, bħal MDBX, huwa wkoll ibbażat fuq siġra B+ u se jkollu wkoll prestazzjoni estremament għolja, filwaqt li jelimina numru ta 'żvantaġġi fundamentali ta' MDBX u LMDB. B'mod partikolari, il-problema ta '"qari fit-tul" se tiġi eliminata, li timmanifesta ruħha bħala "nefħa" tad-database minħabba l-fatt li l-ipproċessar taż-żibel huwa mblukkat minn transazzjonijiet ta' qari fit-tul. Fost il-karatteristiċi ġodda ta 'MithrilDB ta' min jinnota:

  • Поддержка размещения БД на нескольких разнородных носителях: HDD, SSD и энергонезависимой памяти.
  • Оптимальные стратегии для «ценных» и «малоценных», для «горячих», «теплых» и «холодных» данных.
  • Использование Merkle tree для контроля целостности БД.
  • Опциональное использование WAL и существенно более высокая производительно в сценариях с интенсивной записью и гарантиями на целостность данных.
  • Ленивая догоняющая фиксация данных на дисках.

Sors: opennet.ru

Żid kumment