libmdbx 0.11.7, GitFlic'e proje geçişi, hata düzeltmeleri ve daha fazlasıyla geldi

bu yeni libmdbx kitaplığı sürüm 0.11.7'nin yayımlanması, fırlatma projenin GitFlic hizmetine taşınmasıyla öne çıkıyor GitHub yönetiminin 15 Nisan 2022'de bir dizi başka projeyle birlikte libmdbx'i herhangi bir uyarı veya açıklama yapmadan kaldırmasının ve ayrıca ABD yaptırımlarına giren şirketlerle ilişkili birçok geliştiricinin erişimini engellemesinin ardından.

Kullanıcı açısından bakıldığında, projenin tüm sayfaları, deposu ve çatalları birdenbire, iletişim imkânı olmadan ve sebepleri öğrenilmeden bir “404” sayfasına dönüştü.

Ne yazık ki, neredeyse tüm sürümler kayboldu, ayrıntılı cevapları olan birçok sorunun yanı sıra birçok tartışmanın olduğu. Tartışmaların kısmi kopyaları arşiv.org arşivinde mevcut olmasına rağmen, GitHub yönetiminin projeye vermeyi başardığı tek nesnel zarar bu bilginin kaybıdır.

Yerleşik CI altyapısının ve komut dosyalarının (OpenSource projelerine ücretsiz olarak sunulur) kaybı, bizi biraz teknik borcu gözden geçirmeye, birleştirmeye ve ortadan kaldırmaya zorladı. Artık CI, tüm BSD ve Solaris varyantları için test oluşturma ve çalıştırma dışında, neredeyse aynı hacme (yaklaşık 100 yapı konfigürasyonu) geri yüklendi. Açıkçası, GitHub'ın eylemlerinden sonra, ödeme ihtiyacının hatırlatılması dışında hiçbir açıklama veya bildirim alınmadı.

libmdbx 0.11.7'ün başlıca yeni özellikleri

libmdbx v0.11.3'ün piyasaya sürülmesiyle ilgili en son haberlerden bu yana, GitHub eylemlerinden kurtarmaya ek olarak, aşağıdaki iyileştirmeler ve düzeltmeler dikkate değer:

185 dosyada toplam 89 değişiklik yapıldı, yaklaşık 3300 satır eklendi, yaklaşık 4100 kaldırıldı. Öncelikle GitHub ve bağımlı hizmetlerle ilişkili zaten işe yaramaz teknoloji dosyalarının temizlenmesi nedeniyle kaldırıldı.

Bir birleştirilmiş sayfada ve önbellekte algılanan bir tutarsızlık etkisi/kusuru için düzeltme Linux çekirdeğindeki arabellek. Sayfa ve arabellek önbelleklerinin gerçekten birleşik olduğu sistemlerde, çekirdeğin zaten belleğe ayrılmış bir dosyaya yazarak iki veri kopyasında belleği boşa harcaması mantıklı değildir. Bu nedenle, yazılan veriler, veri henüz diske yazılmamış olsa bile, write() sistem çağrısı tamamlanmadan önce bellek ayırma yoluyla görünür hale gelir.

Tümüyle diğer davranışlar mantıklı değildir, çünkü gecikmeli birleştirme ile yine de sayfa listeleri için kilitleri yakalamanız, verileri kopyalamanız veya PTE'leri ayarlamanız gerekir. Bu nedenle, söylenmeyen tutarlılık kuralı, birleştirilmiş arabellek önbelleğinin SVR1989'te göründüğü 4'dan beri yürürlüktedir. Sonuç olarak, yoğun libmdbx üretim senaryolarında garip hatalar bulmak çok iş oldu. Önce sorunu yeniden üretmek, ardından hipotezleri doğrulamak ve iyileştirmeleri kontrol etmek.

Oynatma senaryosunun karmaşıklığına ve özgünlüğüne rağmen, sorunun güvenilir bir şekilde tanımlandığını, bulunduğunu ve kaldırıldığını artık güvenle söyleyebiliriz. Ayrıca, baypas mekanizmasının çalışması Erigon (Ethereum) geliştiricilerinden biri tarafından onaylandı, kendi durumunda, hata ayıklama yapısında koruma, ek bir onaylama kontrolü nedeniyle bir gerileme olarak tetiklendi.

Şunu belirtmek gerekir ki, libmdbx'in çalışan projelerde yaygın olarak kullanılması bağlamında, bunun bir hata mı yoksa bir özellik mi olduğunu ve bu tutarlılığa güvenilip güvenilmeyeceğini öğrenmekten ziyade güvenilir çalışmayı sağlamak temelde daha önemlidir. özellikle Linux çekirdeğindeki tutarsızlığın nedenlerini aramadan. Yani, burada kullanıcıları etkileyebilecek bir sorunu çözmekten bahsediyoruz.

EXDEV hatasının gerilemesi düzeltildi (cihazlar arasında bağlantı) hem API aracılığıyla hem de mdbx_copy yardımcı programıyla bir veritabanını sıkıştırma olmadan başka bir dosya sistemine çalışırken kopyalarken.
Kris Zyp, Deno'da libmdbx için destek uyguladı.

MDBX_opt_rp_augment_limit seçeneği tarafından ayarlanan değerin sabit işlenmesi büyük veritabanlarında büyük işlemleri işlerken. Önceden, bir hata nedeniyle gereksiz eylemler gerçekleştirilebiliyor ve bazen Ethereum uygulamaları (Erigon/Akula/Silkworm) ve Binance Chain projeleri üzerindeki performansı etkiliyordu.

Birçok hata düzeltildi, C++ API için olanlar da dahil olmak üzere ve nadir ve egzotik yapılandırmalarda birçok derleme sorunu düzeltildi. Tüm önemli iyileştirmelerin tam listesi ChangeLog'da mevcuttur.

Son olarak, bu konuda daha fazla bilgi edinmek istiyorsanız, ayrıntılara başvurabilirsiniz. Aşağıdaki bağlantıda.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.