test üçün ikinci namizəd kitabxananın buraxılışları açar-dəyər tipli yüksək məhsuldar, kompaktdır. Hazırkı versiya (0.5) texniki buraxılışdır, hər hansı bir düzəlişin tamamlanmasını və ictimai yığma test və sabitləşmə mərhələsinə keçid edilməsini qeyd edir, sonra isə kitabxananın ilk tam buraxılışının formalaşması. libmdbx kodu OpenLDAP İctimai Lisenziyasının qaydalarına uyğun.
MDBX kitabxanası əhəmiyyətli dərəcədə yenidən işlənmiş bir qolları olan — açar-dəyər tipli tranzaksiyalı inteqrasiya olunan DBM əsasında sim-kartı , eyni vaxtda bir neçə prosesi lokal bölüşdürülən (şəbəkədən kənar) DB ilə səmərəli işləməyə imkan verir. MDBX, LMDB-dən daha sürətli və etibarlıdır, eyni zamanda bütün əsas imkanlarını, məsələn və CPU nüvələri üzrə xətti miqyaslama ilə bloklamayan oxumağı qoruyur.
MDBX ilə LMDB arasındakı ən mühüm fərqlər:
- Kodun keyfiyyətinə, test edilməyə və avtomatik yoxlamalara nəzərəçarpacaq dərəcədə daha çox diqqət ayrılır.
- İş zamanı daha çox nəzarət: parametr yoxlamasından başlayaraq, məlumat bazası strukturlarının daxili auditi daxil olmaqla.
- Avtomatik kompaktlaşma və DB ölçüsünün avtomatik idarə edilməsi.
- 32-bit və 64-bit yığmaları üçün tək DB formatı.
- Aralıqlara görə seçmə həcmlərinin qiymətləndirilməsi (range query estimation).
- İki dəfə daha böyük açar dəstəyi və istifadəçi tərəfindən seçilən DB səhifə ölçüsü.
Buraxılış namizədi libmdbx, 2019-cu ilin avqust ayında MDBX və MithrilDB layihələrinin ayrıla biləcəyinə dair qəbul edilmiş qərarın nəticəsidir. libmdbx-də texniki borclanma minimumunu ləğv etmək (rasyonal) qərarı qəbul edildi və kitabxananın sabitləşdirilməsi. Faktik olaraq, müəyyən olunmuş istiqamətdə 2-3 dəfə daha çox iş görüldü, nə planlaşdırılmışdı:
- macOS dəstəyi və "ikinci mərhələ" platformaları: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD təmin edildi. AIX və HP-UX dəstəyi lazım olduqda əlavə edilə bilər.
- Undefined Behavior Sanitizer və Address Sanitizer vasitəsilə kodun sanasiyası keçirilib, "-Wpedantic" ilə yığılma zamanı bütün xəbərdarlıqlar aradan qaldırılıb, Coverity Statik Analizatorun bütün xəbərdarlıqları və s.
- Aktualizasiya .
- İnteqrasiya üçün rahatlaşma üçün ilkin kodun birləşdirilməsi.
- CMake dəstəyi.
- Daxili tranzaksiyaların dəstəyi.
- DB-nin yenidən başlatılma faktını müəyyənləşdirmək üçün bootid-in istifadəsi (DB-nin çirkli dayandırılması).
- Yenilənmiş/staren dövuşlərin sayının tam hesabatı və tranzaksiyalar haqqında geniş məlumat.
- MDBX_ACCEDE opsiyası, fasad modda artıq açılmış DB-yə qoşulma üçün.
- İstifadəsi mövcud olduqda.
- pipe-da isti geri qayıtma.
- İç içə sıralama üçün xüsusi optimallaşdırılmış alqoritm ("qsort()"-dan 2-3 dəfə və "std::sort()"-dan 30% daha sürətli).
- Açarın maksimum uzunluğu artırıldı.
- Məlumat bazası faylının əsasının yaddaşda saxlama strategiyasını avtomatik idarə etmə.
- Daha aqressiv və sürətli avtomatik sıxılma.
- B+ ağacında səhifələrin birləşdirilməsi üçün daha optimal strategiya.
- Məlumat bazasını yanlış istifadə etmə riski üçün qeyri-lokal fayl sistemlərini (NFS, Samba və s.) nəzarət.
- Testlərin dəstinin genişləndirilməsi.
MithrilDB-nin «növbəti» versiyasının hazırlanması ayrıca layihə çərçivəsində davam etdiriləcək. , müsbət tərəfdən, MDBX-in «mövcud» versiyasının inkişaf istiqaməti imkanların dondurulmasına və stabilləşməsinə yönəldilib. Bu qərar üç səbəbdən qəbul edilib:
- Tamamilə uyğun gəlməzlik: MithrilDB-də bütün planlaşdırılmış imkanları həyata keçirmək üçün başqa (uyğun gəlməyən) məlumat bazası fayl formatı və başqa (uyğun gəlməyən) API tələb olunur.
- MithrilDB üçün yeni mənbə kodu, LMDB-dən lisenziyalı müstəqillik təmin edəcək və layihənin başqa bir lisenziya (təsdiq edilmiş) altında dərc edilməsi planlaşdırılır. lisenziya Apache 2.0, deyil ).
- Bölünmə, mümkünsüz qarışıqlığı qarşısını almağa, daha çox dəqiqlik gətirməyə və layihələrin inkişaf yolunda müstəqillik təmin etməyə imkan verir.
MithrilDB, MDBX kimi, həmçinin yer alır və MDBX və LMDB-nin bir sıra əsas çatışmazlıqlarını aradan qaldırarkən maksimum yüksək məhsuldarlıqla fərqlənəcək. Xüsusilə, uzun oxunma problemini aradan qaldıracaq, bu uzun oxuma tranzaksiyaları üzündən formada ‘şişməsi’ ilə özünü göstərir. MithrilDBdə yeni imkanlar bunlardır:
- Məlumat bazasının çoxsaylı müxtəlif mediada yerləşdirilməsi: HDD, SSD və enerji bağımsız yaddaş.
- «Dəyərli» və «maraqsız», «isti», «isti» və «soyuq» məlumatlar üçün optimal strategiyalar.
- Məlumat bazasının bütövlüyünü yoxlamaq üçün Merkle ağacının istifadəsi.
- WAL-in opsional istifadəsi və intensiv yazma senariləri üçün əhəmiyyətli dərəcədə daha yüksək məhsuldarlıq və məlumatların bütövlüyü ilə bağlı zəmanətlər.
- Disklərdə məlumatların gecikmiş geri çıxışı.
Mənbə: opennet.ru
