Öt év fejlesztés után megjelent a második libmdbx 1.0-s kiadásjelölt

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

Библиотека MDBX является существенно переработанным ответвлением от LMDB — a „kulcsérték” osztályba tartozó tranzakciós beágyazott DBMS-ek alapján fa B+ nélkül proaktív naplózás, которая позволяет многопоточным процессам конкурентно и эффективно работать с локально-разделяемой (не сетевой) БД. В свою очередь MDBX быстрее и надёжнее LMDB, и при этом сохраняет все ключевые возможности своего прародителя, такие как SAV и неблокирующее чтение с линейным масштабированием по ядрам CPU.

A legfontosabb különbségek az MDBX és az LMDB között:

  • Alapvetően nagyobb figyelmet fordítanak a kódminőségre, a tesztelésre és az automatikus ellenőrzésekre.
  • Lényegesen nagyobb kontroll az üzemeltetés során, a paraméterek ellenőrzésétől az adatbázis-struktúrák belső auditjáig.
  • Automatikus tömörítés és automatikus adatbázisméret-kezelés.
  • Egyetlen adatbázis-formátum 32 bites és 64 bites összeállításokhoz.
  • A minta mennyiségének becslése tartományok szerint (tartomány lekérdezés becslése).
  • Támogatja a palacsintánál kétszer nagyobb kulcsokat és a felhasználó által választható adatbázis-oldalméretet.

Выпущенный кандидат в релизы 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 и т.д.
  • Frissítés API leírások.
  • Слияние (амальгамация) исходного кода для удобства встраивания.
  • CMake támogatás.
  • Beágyazott tranzakciók támogatása.
  • Bootid használata annak megállapítására, hogy az operációs rendszer újraindult-e (piszkos adatbázis-leállás).
  • Сквозной подсчёт обновлённых/старых страниц и расширенная информация о транзакциях.
  • MDBX_ACCEDE opció egy már nyitott adatbázishoz való csatlakozáshoz kompatibilis módban.
  • Használat OFD blokkolás mikor elérhető.
  • Forró tartalék a csőben.
  • Специализированный оптимизированный алгоритм внутренней сортировки (до 2-3 раз быстрее «qsort()» и до 30% быстрее «std::sort()»).
  • A kulcs maximális hossza megnőtt.
  • Az előreolvasás automatikus vezérlése (adatbázisfájl gyorsítótárazási stratégia a memóriában).
  • Agresszívabb és gyorsabb automatikus tömörítés.
  • Optimálisabb stratégia a B+ faoldalak egyesítésére.
  • Контроль нелокальных файловых систем (NFS, Samba и т.п.) для предотвращения повреждения БД при неверном использовании.
  • A tesztek sora bővült.

A libmdbx "következő" verziójának fejlesztése külön projektként folytatódik MithrilDB, míg az MDBX „aktuális” verziójának fejlesztési vektora a szolgáltatáskészlet lefagyasztását és stabilizálását célozza. Ez a döntés három okból született:

  • Teljesen inkompatibilis: A MithrilDB más (nem kompatibilis) adatbázis-fájlformátumot és más (nem kompatibilis) API-t igényel az összes tervezett szolgáltatás megvalósításához.
  • Új forráskód: A MithrilDB forráskódot az LMDB-től függetlenítették, magát a projektet pedig egy másik licenc alatt tervezik közzétenni (jóváhagyta: OSI лицензией Apache 2.0, а не OpenLDAP nyilvános licenc).
  • Разделение позволяет избежать потенциальную путаницу, внести больше определённости и обеспечить независимость пути развития проектов.

A MithrilDB az MDBX-hez hasonlóan szintén ezen alapul fa B+ és rendkívül nagy teljesítményű lesz, miközben kiküszöböli az MDBX és az LMDB számos alapvető hátrányát. Különösen a „hosszú olvasás” problémája, amely az adatbázis „duzzadásában” nyilvánul meg, amiatt, hogy a szemétfeldolgozást a hosszú leolvasási tranzakciók blokkolják. A MithrilDB új szolgáltatásai a következők:

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

Forrás: opennet.ru

Hozzászólás