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 и т.д.
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 и существенно более высокая производительно в сценариях с интенсивной записью и гарантиями на целостность данных.