Pas pesë vitesh zhvillimi, është publikuar kandidati i dytë për lëshimin libmdbx 1.0.

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

Библиотека MDBX является существенно переработанным ответвлением от LMDB — një DBMS të integruar në transaksion në klasën çelës-vlerë, e bazuar në pemën B+ pa dhe regjistrimin e parandalimit, которая позволяет многопоточным процессам конкурентно и эффективно работать с локально-разделяемой (не сетевой) БД. В свою очередь MDBX быстрее и надёжнее LMDB, и при этом сохраняет все ключевые возможности своего прародителя, такие как ACID и неблокирующее чтение с линейным масштабированием по ядрам CPU.

Dallimet më të rëndësishme të MDBX në krahasim me LMDB:

  • Dhe më shumë vëmendje i është kushtuar cilësisë së kodit, testimit dhe verifikimeve automatike.
  • Kontrolli është dukshëm më i madh gjatë punës, duke filluar nga verifikimi i parametrave deri te auditimi i brendshëm i strukturave të bazës së të dhënave.
  • Kompaktifikimi automatik dhe menaxhimi automatik i madhësisë së DB.
  • Formati i vetëm i DB për përmbledhjet 32-bit dhe 64-bit.
  • Vlerësimi i volumit të mostrave sipas intervaleve (vlerësimi i pyetjeve në interval).
  • Mbështetje për çelësa me dy herë më shumë për blina dhe madhësinë e DB të zgjedhur nga përdoruesi.

Выпущенный кандидат в релизы 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 и т.д.
  • Aktualizimi i përshkrimit të API.
  • Слияние (амальгамация) исходного кода для удобства встраивания.
  • Mbështetje CMake.
  • Mbështetje për transaksione të thelluara.
  • Përdorimi i bootid për të përcaktuar faktin e rilindjes së OS (ndërprerje të papritur të DB).
  • Сквозной подсчёт обновлённых/старых страниц и расширенная информация о транзакциях.
  • Mundësia MDBX_ACCEDE për lidhje me një DB të hapur tashmë në modalitetin e përputhshmërisë.
  • Përdorimi OFD-bllokimet kur janë të aksesueshme.
  • Kopje rezervë të nxehtë në pipe.
  • Специализированный оптимизированный алгоритм внутренней сортировки (до 2-3 раз быстрее «qsort()» и до 30% быстрее «std::sort()»).
  • Rritja e gjatësi maksimale të çelësit.
  • Menaxhimi automatik i leximeve përpara (strategjia e memorizimit të skedarit DB në memorie).
  • Kompaktifikimi automatik më agresiv dhe më i shpejtë.
  • Strategji më optimale për bashkimin e faqeve të pemës B+.
  • Контроль нелокальных файловых систем (NFS, Samba и т.п.) для предотвращения повреждения БД при неверном использовании.
  • Shtuar grupi i testeve.

Zhvillimi i versionit të "në vijim" të libmdbx do të vazhdojë në kuadër të një projekti të veçantë. MithrilDB, ndërsa drejtimi i zhvillimit të versionit "aktual" të MDBX është orientuar drejt ngrirjes së grupit të mundësive dhe stabilizimit. Ky vendim është marrë për tre arsye:

  • Përshtatshmëri e plotë e papërputhshme: për të realizuar të gjitha mundësitë e planifikuara në MithrilDB kërkohet një format tjetër skedarësh DB (i papërputhshëm) dhe një API tjetër (i papërputhshëm).
  • Kodi i ri burimor: për kodin burimor të MithrilDB është garantuar pavarësia licencore nga LMDB dhe projekti vetë planifikohet të publikohet nën një licencë tjetër (të miratuar nga OSI лицензией Apache 2.0, а не Licenca Publike OpenLDAP).
  • Разделение позволяет избежать потенциальную путаницу, внести больше определённости и обеспечить независимость пути развития проектов.

MithrilDB ashtu si MDBX, gjithashtu bazohet në pemën B+ dhe gjithashtu do të ketë një performancë maksimale të lartë, ndërsa do të eliminojë një sërë të meta thelbësore të MDBX dhe LMDB. Në veçanti, do të zgjidhet problemi i ‘leximeve të gjata’, i cili manifeston si ‘shkarkim’ i DB-së për shkak se përpunimi i mbeturinave bllokohet nga transaksionet e gjatë lexuese. Në mesin e mundësive të reja të MithrilDB, duhet theksuar:

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

Burimi: opennet.ru

Bli një hosting të besueshëm për faqet me mbrojtje DDoS, VPS VDS serverë 🔥 Bli një hosting të besueshëm për faqet me mbrojtje DDoS, VPS VDS serverë | ProHoster