Kandidà famoahana faharoa ho an'ny libmdbx v1.0 taorian'ny dimy taona nanaovana ny fampandrosoana.

fitehirizam-boky libmdbx является существенно переработанным потомком LMDB — предельно высокопроизводительной, компактной встраиваемой базой данных класса ключ-значение.
Текущая версия v0.5 является техническим релизом, отмечает завершение каких-либо доработок и переход к фазе публичного финального тестирования и стабилизации, с последующем формированием первого полноценного релиза библиотеки.

LMDB является достаточно известной транзакционной встраиваемой СУБД класса «ключ-значение» на основе hazo B+ tsy misy logging proactive, которая позволяет рою многопоточных процессов конкурентно и предельно эффективно работать с локально-разделяемой (не сетевой) БД. В свою очередь MDBX быстрее и надежнее LMDB, при этом libmdbx сохраняет все ключевые возможности своего прародителя, такие как asidra и неблокирующее чтение с линейным масштабированием по ядрам CPU, а также добавляет несколько новых.

Описание отличий и усовершенствований libmdbx относительно LMDB заслуживает отдельной статьи (планируется публикации на «Хабре» и «Medium»). Здесь же уместно упомянуть самые важные и заметные:

  • Amin'ny ankapobeny, mifantoka bebe kokoa amin'ny kalitao kaody, fitsapana ary fisavana mandeha ho azy.
  • Fanaraha-maso bebe kokoa mandritra ny fampandehanana, manomboka amin'ny fanaraha-maso ireo masontsivana mankany amin'ny fanaraha-maso anatiny ny rafitra angon-drakitra.
  • Auto-compactification sy automatique ny fitantanana ny haben'ny database.
  • Rafitra tahiry tokana ho an'ny fivoriambe 32-bit sy 64-bit.
  • Оценка объема выборок по диапазонам (range query estimation).
  • Fanohanana fanalahidy avo roa heny noho ny pancakes sy ny haben'ny pejin'ny angon-drakitra azo safidin'ny mpampiasa.

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

  • Реализована поддержка Mac OS и платформ «второго эшелона»: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. Поддержка AIX и HP -UX может быть добавлена при необходимости.
  • Проведена санация кода при помощи Undefined Behavior Sanitizer и Address Sanitizer, устранены все предупреждения при сборке с -Wpedantic, все предупреждения Coverity Static Analyzer и т. д.
  • vaovao farany Famaritana API.
  • Амальгамация исходного кода для удобства встраивания.
  • Fanohanana CMake.
  • Fanohanana amin'ny fifampiraharaham-barotra.
  • Mampiasa bootid hamaritana raha niverina indray ny OS (fijanonana ny angon-drakitra maloto).
  • Сквозной подсчет обновлённых/старых страниц и расширенная информация о транзакциях.
  • Safidy MDBX_ACCEDE hampifandraisana amin'ny angon-drakitra efa misokatra amin'ny fomba mifanaraka.
  • ny fampiasana ny OFD fanakanana rehefa misy.
  • Backup mafana amin'ny fantsona.
  • Специализированный оптимизированный алгоритм внутренней сортировки (до 2-3 раз быстрее qsort() и до 30% быстрее std::sort()).
  • Nitombo ny halavan'ny fanalahidy ambony indrindra.
  • Fanaraha-maso mandeha ho azy amin'ny famakiana mialoha (paikady fitehirizana rakitra tahiry ao anaty fitadidiana).
  • Mahery vaika kokoa sy haingana kokoa ny auto-compactification.
  • Paikady tsara indrindra amin'ny fampifangaroana pejy hazo B+.
  • Контроль не-локальных файловых систем (NFS, Samba и т.п.) для предотвращения повреждения БД при неверном использовании.
  • Nitarina ny andiana fitsapana.

Hitohy ho tetikasa mitokana ny fampivoarana ny dikan-teny "manaraka" an'ny libmdbx MithrilDB, raha toa kosa ny vector fampiroboroboana ny dikan-teny "ankehitriny" an'ny MDBX dia mikendry ny hanamaivana ny endri-javatra napetraka sy ny fanamafisana azy. Izany fanapahan-kevitra izany dia natao noho ny antony telo:

  • Tsy mifanaraka tanteraka: MithrilDB dia mitaky endrika rakitra angon-drakitra hafa (tsy mifanaraka) ary API hafa (tsy mifanaraka) mba hampiharana ireo endri-javatra nomanina rehetra.
  • Kaody loharano vaovao: Ny kaody loharano MithrilDB dia natao nahazo alalana tsy miankina amin'ny LMDB, ary ny tetikasa mihitsy dia nokasaina havoaka amin'ny alàlan'ny fahazoan-dàlana hafa (ankatoavin'ny NA RAHA Mombamomba ny mpanoratra Apache 2.0, fa tsy OpenLDAP Foundation).
  • Разделение позволяет избежать потенциальную путаницу, внести больше определенности и обеспечить независимость пути развития проектов.

MithrilDB, toa ny MDBX, dia mifototra amin'ny hazo B+ ary hanasongadina fampisehoana avo dia avo ihany koa, ary hanafoana ny tsy fahampiana fototra maromaro amin'ny MDBX sy LMDB. Indrindra indrindra, hofoanana ny olan'ny "mamaky lava be", izay miseho ho "fivontosana" amin'ny angon-drakitra noho ny zava-misy fa sakanan'ny fifampiraharahana amin'ny famakiana lava be ny fanodinana fako. Ny endri-javatra vaovao MithrilDB dia misy:

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

Source: linux.org.ru

Add a comment