Beş illik inkişafdan sonra ikinci libmdbx 1.0 buraxılış namizədi nəşr olundu

Mövcuddur kitabxana buraxılışları üçün ikinci namizədi sınaqdan keçirmək üçün libmdbx yüksək performanslı, yığcam daxil edilmiş açar-dəyər verilənlər bazasının tətbiqi ilə. Cari versiya (0.5) texniki buraxılışdır, hər hansı təkmilləşdirmənin tamamlanmasını və kitabxananın ilk tam buraxılışının sonrakı formalaşması ilə ictimai yekun sınaq və sabitləşdirmə mərhələsinə keçidi qeyd edir. libmdbx kodu yayılır OpenLDAP İctimai Lisenziyası altında lisenziyalıdır.

MDBX kitabxanası əhəmiyyətli dərəcədə yenidən işlənmiş çəngəldir LMDB — əsaslanan “açar-dəyər” sinfinin əməliyyat daxili DBMS ağac B+ olmadan proaktiv giriş, bu, çox yivli proseslərin yerli paylaşılan (şəbəkə deyil) verilənlər bazası ilə rəqabətli və səmərəli işləməsinə imkan verir. Öz növbəsində, MDBX LMDB-dən daha sürətli və etibarlıdır və eyni zamanda öz əcdadının bütün əsas xüsusiyyətlərini, məsələn, ACID və CPU nüvələri arasında xətti miqyaslama ilə bloklanmayan oxuyur.

MDBX və LMDB arasındakı ən əhəmiyyətli fərqlər:

  • Əsasən, kodun keyfiyyətinə, sınaqlara və avtomatik yoxlamalara daha çox diqqət yetirilir.
  • Parametrlərin yoxlanılmasından tutmuş verilənlər bazası strukturlarının daxili auditinə qədər əməliyyat zamanı əhəmiyyətli dərəcədə daha çox nəzarət.
  • Avtomatik kompaktlaşdırma və verilənlər bazası ölçüsünün avtomatik idarə edilməsi.
  • 32-bit və 64-bit montajlar üçün vahid verilənlər bazası formatı.
  • Nümunə həcmlərinin diapazonlar üzrə qiymətləndirilməsi (aralıq sorğusunun qiymətləndirilməsi).
  • Pancake və istifadəçi tərəfindən seçilə bilən verilənlər bazası səhifəsinin ölçüsündən iki dəfə böyük düymələr üçün dəstək.

Libmdbx buraxılış namizədi MDBX və MithrilDB layihələrini ayırmaq üçün 2019-cu ilin avqustunda qəbul edilmiş qərarın nəticəsidir. Eyni zamanda, libmdbx (rasional) maksimum texniki borcunu aradan qaldırmaq və kitabxananı sabitləşdirmək qərarına gəldi. Əslində, təyin olunmuş istiqamətdə ilkin hesablanmış və planlaşdırılandan 2-3 dəfə çox işlər görülüb:

  • macOS və ikinci səviyyəli platformalar üçün dəstək həyata keçirilib: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. AIX və HP-UX dəstəyi lazım olduqda əlavə edilə bilər.
  • Kod Müəyyən edilməmiş Davranış Təmizləyicisi və Ünvan Təmizləyicisi ilə təmizləndi, “-Wpedantic” ilə tikinti zamanı bütün xəbərdarlıqlar, bütün Örtüklük Statik Analizatoru xəbərdarlıqları və s. ləğv edildi.
  • Yeniləyin API təsvirləri.
  • Yerləşdirmə asanlığı üçün mənbə kodunun birləşdirilməsi (birləşdirilməsi).
  • CMake dəstək.
  • Yuvalanmış əməliyyatlar üçün dəstək.
  • ƏS-in yenidən işə salınıb-bootid-dən istifadə edib-etmədiyini müəyyən etmək üçün (çirkli verilənlər bazası dayanması).
  • Yenilənmiş/köhnə səhifələrin və uzadılmış əməliyyat məlumatlarının başdan sona hesablanması.
  • Uyğun rejimdə artıq açıq verilənlər bazasına qoşulmaq üçün MDBX_ACCEDE seçimi.
  • Istifadə OFD bloklanması mövcud olduqda.
  • Boruda isti ehtiyat.
  • İxtisaslaşdırılmış optimallaşdırılmış daxili çeşidləmə alqoritmi (“qsort()”dan 2-3 dəfəyə qədər və “std::sort()”dan 30%-ə qədər sürətli).
  • Maksimum açar uzunluğu artırıldı.
  • İrəli oxumağa avtomatik nəzarət (yaddaşda verilənlər bazası faylının keşləmə strategiyası).
  • Daha aqressiv və daha sürətli avtomatik yığcamlaşdırma.
  • B+ ağac səhifələrini birləşdirmək üçün daha optimal strategiya.
  • Yanlış istifadə edildikdə verilənlər bazasına zərər verməmək üçün yerli olmayan fayl sistemlərinə (NFS, Samba və s.) nəzarət.
  • Testlər toplusu genişləndirilib.

libmdbx-in "növbəti" versiyasının hazırlanması ayrıca layihə kimi davam etdiriləcək MithrilDB, halbuki MDBX-in “cari” versiyasının inkişaf vektoru funksiyalar dəstini dondurmaq və onu sabitləşdirmək məqsədi daşıyır. Bu qərar üç səbəbə görə verilib:

  • Tamamilə uyğun gəlmir: MithrilDB bütün planlaşdırılan xüsusiyyətləri həyata keçirmək üçün fərqli (uyğun olmayan) verilənlər bazası fayl formatı və fərqli (uyğun olmayan) API tələb edir.
  • Yeni mənbə kodu: MithrilDB mənbə kodu LMDB-dən müstəqil lisenziyalaşdırılıb və layihənin özünün başqa bir lisenziya altında dərc edilməsi planlaşdırılır (təsdiqlənib). ACİ Apache 2.0 lisenziyası, yox OpenLDAP İctimai Lisenziyası).
  • Ayrılma potensial qarışıqlığın qarşısını alır, daha çox əminlik təqdim edir və layihələr üçün müstəqil bir yol təmin edir.

MDBX kimi MithrilDB də əsaslanır ağac B+ və MDBX və LMDB-nin bir sıra əsas çatışmazlıqlarını aradan qaldırmaqla yanaşı, son dərəcə yüksək performans nümayiş etdirəcək. Xüsusilə, zibil emalının uzun müddət oxunma əməliyyatları ilə bloklanması səbəbindən məlumat bazasının “şişməsi” kimi özünü göstərən “uzun oxunma” problemi aradan qaldırılacaq. Yeni MithrilDB xüsusiyyətlərinə aşağıdakılar daxildir:

  • Verilənlər bazasını bir neçə heterojen daşıyıcıda yerləşdirmək üçün dəstək: HDD, SSD və uçucu olmayan yaddaş.
  • “Dəyərli” və “aşağı dəyərli”, “isti”, “isti” və “soyuq” məlumatlar üçün optimal strategiyalar.
  • Verilənlər bazası bütövlüyünü izləmək üçün Merkle ağacından istifadə.
  • WAL-ın isteğe bağlı istifadəsi və məlumatların bütövlüyünə zəmanət verən intensiv yazma ssenarilərində performansın əhəmiyyətli dərəcədə yaxşılaşdırılması.
  • Disklərə məlumat ötürən tənbəl tutma.

Mənbə: opennet.ru

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