Yüksək performanslı quraşdırılmış DBMS-nin buraxılışı libmdbx 0.11.3

Libmdbx 0.11.3 (MDBX) kitabxanası yüksək performanslı yığcam daxil edilmiş açar-dəyər verilənlər bazasının tətbiqi ilə buraxılmışdır. libmdbx kodu OpenLDAP İctimai Lisenziyasına əsasən lisenziyalaşdırılıb. Bütün cari əməliyyat sistemləri və arxitekturaları, eləcə də Rusiyanın Elbrus 2000-i dəstəklənir. 2021-ci ilin sonunda libmdbx iki ən sürətli Ethereum müştərisində - Erigon və mövcud məlumatlara görə yeni "Shark"-da yaddaş bazası kimi istifadə olunur. məlumat, ən yüksək performanslı Ethereum müştərisidir.

Tarixən libmdbx LMDB DBMS-nin dərin yenidən dizaynıdır və etibarlılıq, xüsusiyyətlər dəsti və performans baxımından onun əcdadını üstələyir. LMDB ilə müqayisədə libmdbx kodun keyfiyyətinə, API sabitliyinə, sınaqlara və avtomatlaşdırılmış yoxlamalara çox diqqət yetirir. Verilənlər bazası strukturunun bütövlüyünü yoxlamaq üçün bir yardım proqramı bəzi bərpa variantları ilə təchiz edilmişdir.

Texnologiya baxımından libmdbx ACID, güclü dəyişiklik serializasiyası və CPU nüvələri arasında xətti miqyasla bloklanmayan oxunuşlar təklif edir. Avtomatik kompaktlaşdırma, verilənlər bazası ölçüsünün avtomatik idarə edilməsi və diapazon sorğusunun qiymətləndirilməsi dəstəklənir. 2016-cı ildən layihə Positive Technologies tərəfindən maliyyələşdirilir və 2017-ci ildən məhsullarında istifadə olunur.

libmdbx C++ API, həmçinin Rust, Haskell, Python, NodeJS, Ruby, Go və Nim üçün həvəskarlar tərəfindən dəstəklənən dil bağlamaları təklif edir.

11 oktyabrda əvvəlki xəbərdən sonra əlavə edilən əsas yeniliklər, təkmilləşdirmələr və düzəlişlər:

  • C++ API istifadəyə hazır hesab olunur.
  • Böyük əməliyyatlar həyata keçirərkən GC məlumatlarının yenilənməsi əhəmiyyətli dərəcədə sürətləndirildi, bu, Ethereum ekosistemində libmdbx istifadə edərkən xüsusilə vacibdir.
  • İstifadəçilər üçün tamamilə şəffaf olan avtomatik yenilənməni dəstəkləmək üçün verilənlər bazası formatının daxili imzası dəyişdirilib. Bu, kitabxananın köhnəlmiş versiyaları cari versiyalar tərəfindən qeydə alınmış əməliyyatları oxumaq üçün istifadə edildikdə, verilənlər bazası korrupsiyası ilə bağlı yanlış müsbət mesajları aradan qaldırmağa imkan verir.
  • Əlavə edilmiş funksiyalar mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() və mdbx_env_get_syncbytes(). MDBX_SET_UPPERBOUND əməliyyatı üçün əlavə dəstək.
  • C++ 11/14/17/20 rejimlərində dəstəklənən bütün kompilyatorlarla qurularkən bütün xəbərdarlıqlar ləğv edildi. Köhnə kompilyatorlarla uyğunluq təmin edilir: CentOS/RHEL 3.9 üçün cdevtoolset-4.8 istifadə edərək montaj daxil olmaqla 9-dan başlayan cingilti, 7-dən başlayan gcc.
  • Mdbx_chk yardım proqramından istifadə edərək xüsusi meta səhifəyə əl ilə keçdikdən sonra meta səhifə münaqişəsi ehtimalı düzəldildi.
  • Köhnə meta səhifələrin üzərinə yazarkən gözlənilməz MDBX_PROBLEM xətasının qaytarılması düzəldildi.
  • MDBX_GET_BOTH sorğusunu emal edərkən qeyri-dəqiq uyğunluq halında MDBX_NOTFOUND qaytarılması düzəldildi.
  • Linux-da nüvə ilə interfeyslərin təsviri olan başlıq fayllarının olmaması səbəbindən kompilyasiya xətası düzəldildi.
  • MDBX_SHRINK_ALLOWED daxili bayraq və MDBX_ACCEDE seçimi arasında ziddiyyət aradan qaldırıldı.
  • Bir neçə lazımsız təsdiq yoxlaması aradan qaldırıldı.
  • mdbx_env_set_option() funksiyasından MDBX_RESULT_TRUE-un gözlənilməz qaytarılması düzəldildi.
  • Ümumilikdə, 90 faylda 25-dan çox dəyişiklik edildi, ~1300 sətir əlavə edildi, ~600 silindi.

Mənbə: opennet.ru

Добавить комментарий