Kompakt quraşdırılmış DBMS-nin buraxılışı libmdbx 0.9.1

Buraxıldı kitabxana versiyası 0.9.1 libmdbx (MDBX) yüksək performanslı, yığcam daxil edilmiş açar-dəyər verilənlər bazasının həyata keçirilməsi. libmdbx kodu lisenziya əsasında paylanır OpenLDAP İctimai Lisenziyası.

Cari versiya tam C++ dəstəyi ilə uzunmüddətli stabil 1.0 versiyasını buraxmaq niyyəti ilə yeni C++ API-nin dondurulmasına hazırlıqsızlıq səbəbindən buraxılışları təxirə salmaq istəməməsi arasında kompromisdir. Təqdim olunan buraxılış kitabxananın sabitləşdirilməsinə və onun istifadəsinin yaxşılaşdırılmasına yönəlmiş 9 aylıq işin nəticəsidir və ilkin versiyanı da əhatə edir. C++ API.

libmdbx kitabxanası sadəcə “çəngəl” deyil, köklü şəkildə yenidən işlənmiş nəsildir. LMDB — əsaslanan “açar-dəyər” sinfinin əməliyyat daxili DBMS ağac B+ olmadan proaktiv giriş, bu, çox yivli proseslərin xüsusi server prosesi olmadan yerli paylaşılan (şəbəkədənkənar) verilənlər bazası ilə rəqabətli və səmərəli işləməsinə imkan verir. Əsasən libmdbx genişlənir əcdadının imkanları, eyni zamanda çatışmazlıqları aradan qaldırır və ya azaldır. Eyni zamanda, tərtibatçıların fikrincə, libmdbx LMDB-dən bir az daha sürətli və əhəmiyyətli dərəcədə etibarlıdır.

libmdbx təklif edir ACID, dəyişikliklərin ciddi serializasiyası və CPU nüvələri arasında xətti miqyaslama ilə bloklanmayan oxunuş. Performans sınağı nəticələri (1 yivli HyperThread rejimində 2 fiziki nüvəli i4-8U CPU-da 7-4600-2-4 mövzularda paralel oxu/axtarış sorğularının göndərilməsi):

Kompakt quraşdırılmış DBMS-nin buraxılışı libmdbx 0.9.1

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

  • Əsasən, kodun keyfiyyətinə, API ardıcıllığına, 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).
  • İki dəfə uzun düymələrə və istifadəçi tərəfindən seçilə bilən verilənlər bazası səhifə ölçüsünə dəstək.
  • Bəzi bərpa imkanları ilə verilənlər bazası strukturunun bütövlüyünü yoxlamaq üçün bir yardım proqramı.

Sonrakı əsas yeniliklər və təkmilləşdirmələr əvvəlki xəbərlər 0.5-ci ilin yanvar ayında 2020 versiyasının tətbiqi ilə:

  • Sürətli dəstək və suallara cavab üçün açıq sistem yaradılmışdır. Telegram qrupu.
  • Ondan çox səhv və çatışmazlıq aradan qaldırıldı (bax. dəyişiklik jurnalı).
  • Bir çox yazı və orfoqrafik səhvlər düzəldildi və çoxsaylı kosmetik təkmilləşdirmələr edildi.
  • Test ssenariləri genişləndirilib.
  • iOS, Android üçün dəstək, buildroot, musl, uClibc, WSL1 и şərab.
  • C++ API önizləməsi buraxıldı bir başlıq faylı.
  • Doxygen formatında daxili sənədlər və avtomatik generasiya Onlayn sənədlər.
  • Birləşdirilmiş mənbə mətnləri ilə arxivlərin avtomatik yaradılması təmin edilir.
  • Əməliyyatlar və kursorlar, əməliyyatlar və kursorlar üçün istifadəçi kontekstləri hazırlamaq üçün əlavə dəstək.
  • B+ağac MVCC snapshotlarında istinad bütövlüyünə nəzarət etmək üçün əlavə üsullar tətbiq edilmişdir.
  • Bərpa üçün keçid imkanı ilə istənilən meta səhifə vasitəsilə əldə edilə bilən verilənlər bazasının MVCC snapshotını yoxlamaq üçün əlavə dəstək.
  • Test məqsədləri üçün verilənlər bazasını bir prosesdən yenidən açmaq üçün həyata keçirilən dəstək və s.
  • Verilənlər bazası açarkən MDBX_NOSUBDIR seçiminin avtomatik işlənməsi həyata keçirilir.
  • Üzən nöqtə dəyərlərindən və JavaScript “universal” nömrələrindən tam ədədlər yaratmaq üçün funksiyalar əlavə edildi.
  • Ümumilikdə 430 fayla təsir edən 93 dəyişiklik edilib, 25 mindən çox sətir əlavə edilib, 8.5 mindən çox sətir silinib.

libmdbx-in sonrakı inkişafı son C++ API-yə, əsas kodun daha da sabitləşdirilməsinə, kitabxananın istifadə imkanlarının yaxşılaşdırılmasına və populyar Linux paylamaları üçün qablaşdırmaya yönəldiləcək. Təklif olunan təkmilləşdirmələr arasında formatdakı açarların dəstəyini qeyd etmək lazımdır Mesaj Paketi.

Mənbə: opennet.ru

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