Yüksek performanslı yerleşik DBMS libmdbx 0.11.3 sürümü

Libmdbx 0.11.3 (MDBX) kitaplığı, yüksek performanslı kompakt yerleşik anahtar/değer veritabanının uygulanmasıyla piyasaya sürüldü. Libmdbx kodu OpenLDAP Kamu Lisansı kapsamında lisanslanmıştır. Rus Elbrus 2000'in yanı sıra mevcut tüm işletim sistemleri ve mimariler de desteklenmektedir. 2021'in sonunda, libmdbx en hızlı iki Ethereum istemcisinde - Erigon ve yeni "Shark"ta depolama arka ucu olarak kullanıldı. information, en yüksek performanslı Ethereum istemcisidir.

Tarihsel olarak libmdbx, LMDB DBMS'nin derinlemesine yeniden işlenmesidir ve güvenilirlik, özellik seti ve performans açısından atalarından üstündür. LMDB ile karşılaştırıldığında libmdbx, kod kalitesine, API kararlılığına, testlere ve otomatik kontrollere büyük önem verir. Bazı kurtarma yetenekleriyle birlikte veritabanı yapısının bütünlüğünü kontrol etmeye yönelik bir yardımcı program sağlanır.

Teknoloji açısından libmdbx, ACID, güçlü değişiklik serileştirmesi ve CPU çekirdekleri arasında doğrusal ölçeklendirmeyle engellenmeyen okumalar sunar. Otomatik sıkıştırma, otomatik veritabanı boyutu yönetimi ve aralık sorgusu tahmini desteklenir. Proje, 2016 yılından bu yana Positive Technologies tarafından finanse ediliyor ve 2017 yılından bu yana ürünlerinde kullanılıyor.

libmdbx, Rust, Haskell, Python, NodeJS, Ruby, Go ve Nim için meraklıların desteklediği dil bağlamalarının yanı sıra bir C++ API'si sunar.

11 Ekim'deki önceki haberden bu yana eklenen önemli yenilikler, iyileştirmeler ve düzeltmeler:

  • C++ API'nin kullanıma hazır olduğu kabul edilir.
  • Büyük işlemler gerçekleştirirken GC verilerinin güncellenmesi önemli ölçüde hızlandırıldı; bu, özellikle Ethereum ekosisteminde libmdbx kullanıldığında önemlidir.
  • Veritabanı formatının dahili imzası, kullanıcılar için tamamen şeffaf olan otomatik güncellemeyi destekleyecek şekilde değiştirildi. Bu, geçerli sürümler tarafından kaydedilen işlemleri okumak için kitaplığın eski sürümleri kullanıldığında, veritabanı bozulmasıyla ilgili yanlış pozitif mesajları ortadan kaldırmanıza olanak tanır.
  • mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() ve mdbx_env_get_syncbytes() işlevleri eklendi. MDBX_SET_UPPERBOUND işlemi için destek eklendi.
  • C++ 11/14/17/20 modlarında desteklenen tüm derleyicilerle derleme sırasındaki tüm uyarılar ortadan kaldırıldı. Eski derleyicilerle uyumluluk sağlanır: CentOS/RHEL 3.9 için cdevtoolset-4.8 kullanılarak yapılan montaj dahil 9'dan başlayan clang, 7'den başlayan gcc.
  • mdbx_chk yardımcı programını kullanarak belirli bir meta sayfaya manuel olarak geçiş yaptıktan sonra meta sayfa çakışması olasılığı düzeltildi.
  • Eski meta sayfaların üzerine yazarken beklenmeyen MDBX_PROBLEM hatasının döndürülmesi düzeltildi.
  • Bir MDBX_GET_BOTH isteğini işlerken hatalı bir eşleşme olması durumunda MDBX_NOTFOUND'un döndürülmesi düzeltildi.
  • Çekirdek ile arayüzlerin açıklamalarını içeren başlık dosyalarının yokluğunda Linux'ta oluşan bir derleme hatası düzeltildi.
  • MDBX_SHRINK_ALLOWED dahili bayrağı ile MDBX_ACCEDE seçeneği arasındaki çakışma düzeltildi.
  • Birkaç gereksiz onay kontrolü ortadan kaldırıldı.
  • MDBX_env_set_option() işlevinden MDBX_RESULT_TRUE'nun beklenmeyen dönüşü düzeltildi.
  • Toplamda 90 dosyada 25'tan fazla değişiklik yapıldı, ~1300 satır eklendi, ~600 satır silindi.

Kaynak: opennet.ru

Yorum ekle