An dara iarrthóir scaoilte libmdbx v1.0 tar éis cúig bliana d'fhorbairt.

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

LMDB является достаточно известной транзакционной встраиваемой СУБД класса «ключ-значение» на основе crann B+ без logáil réamhghníomhach, которая позволяет рою многопоточных процессов конкурентно и предельно эффективно работать с локально-разделяемой (не сетевой) БД. В свою очередь MDBX быстрее и надежнее LMDB, при этом libmdbx сохраняет все ключевые возможности своего прародителя, такие как Aigéad и неблокирующее чтение с линейным масштабированием по ядрам CPU, а также добавляет несколько новых.

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

  • Go bunúsach, dírítear aird níos mó ar cháilíocht an chóid, ar thástáil agus ar sheiceálacha uathoibríocha.
  • I bhfad níos mó rialaithe le linn oibríochta, ó pharaiméadair a sheiceáil go hiniúchadh inmheánach ar struchtúir bunachar sonraí.
  • Uath-dhlúthú agus bainistíocht uathoibríoch ar mhéid an bhunachair sonraí.
  • Formáid bhunachar sonraí aonair le haghaidh tionóil 32-giotán agus 64-giotán.
  • Оценка объема выборок по диапазонам (range query estimation).
  • Tacaíocht d'eochracha dhá oiread chomh mór le pancóga agus méid leathanach bunachar sonraí úsáideora-selectable.

Выпущенный релиз-кандидат 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 и т. д.
  • Nuashonrú Cur síos API.
  • Амальгамация исходного кода для удобства встраивания.
  • Tacaíocht CMake.
  • Tacaíocht le haghaidh idirbhearta neadaithe.
  • Ag baint úsáide as bootid chun a chinneadh an bhfuil an OS atosaithe (stad bunachar sonraí salach).
  • Сквозной подсчет обновлённых/старых страниц и расширенная информация о транзакциях.
  • Rogha MDBX_ACCEDE chun nascadh le bunachar sonraí atá oscailte cheana féin i mód comhoiriúnach.
  • Úsáid blocáil OFD nuair atá sé ar fáil.
  • Cúltaca te sa phíobán.
  • Специализированный оптимизированный алгоритм внутренней сортировки (до 2-3 раз быстрее qsort() и до 30% быстрее std::sort()).
  • Méadaíodh an t-uasfhad eochrach.
  • Rialú uathoibríoch ar léamh ar aghaidh (straitéis taisceadh comhad bunachar sonraí sa chuimhne).
  • Uath-chomhdhlúthú níos ionsaithí agus níos tapúla.
  • Straitéis níos fearr chun leathanaigh chrainn B+ a chumasc.
  • Контроль не-локальных файловых систем (NFS, Samba и т.п.) для предотвращения повреждения БД при неверном использовании.
  • Tá an tsraith tástálacha leathnaithe.

Leanfar le forbairt an leagain "eile" de libmdbx mar thionscadal ar leith MithrilDB, cé go bhfuil veicteoir forbartha an leagan “reatha” de MDBX dírithe ar an tacar gné a reo agus a chobhsú. Rinneadh an cinneadh seo ar thrí chúis:

  • Go hiomlán neamh-chomhoiriúnach: Éilíonn MithrilDB formáid comhaid bunachar sonraí difriúil (neamh-chomhoiriúnach) agus API difriúil (neamh-chomhoiriúnach) chun na gnéithe pleanáilte go léir a chur i bhfeidhm.
  • Cód foinse nua: Tá cód foinse MithrilDB ceadúnaithe neamhspleách ó LMDB, agus tá sé beartaithe an tionscadal féin a fhoilsiú faoi cheadúnas difriúil (faofa ag NÓ MÁ ceadúnas Apache 2.0Agus ní OpenLDAP Foundation).
  • Разделение позволяет избежать потенциальную путаницу, внести больше определенности и обеспечить независимость пути развития проектов.

Tá MithrilDB, cosúil le MDBX, bunaithe ar crann B+ agus beidh feidhmíocht thar a bheith ard i gceist freisin, agus ag an am céanna deireadh a chur le roinnt míbhuntáistí bunúsacha a bhaineann le MDBX agus LMDB. Go háirithe, cuirfear deireadh le fadhb na "léamh fada", a léiríonn "at" an bhunachair sonraí toisc go bhfuil próiseáil truflais bactha ag idirbhearta léitheoireachta fada. I measc na ngnéithe nua MithrilDB tá:

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

Foinse: linux.org.ru

Add a comment