libmdbx 0.11.7 hadir dengan migrasi proyek ke GitFlic, perbaikan bug, dan banyak lagi

Itu rilis perpustakaan libmdbx baru versi 0.11.7, peluncuran menonjol karena migrasi proyek ke layanan GitFlic setelah administrasi GitHub menghapus libmdbx bersama dengan sejumlah proyek lain pada 15 April 2022 tanpa peringatan atau penjelasan apa pun, sementara juga memblokir akses ke banyak pengembang yang terkait dengan perusahaan yang terkena sanksi AS.

Dari sudut pandang pengguna, semua halaman, repositori, dan garpu proyek tiba-tiba berubah menjadi halaman "404", tanpa kemungkinan komunikasi dan tanpa mengetahui alasannya.

Sayangnya, hampir semua versi telah hilang, di mana ada banyak pertanyaan dengan jawaban terperinci, serta banyak diskusi. Hilangnya informasi ini adalah satu-satunya kerusakan objektif yang berhasil ditimbulkan oleh administrasi GitHub pada proyek, meskipun sebagian salinan diskusi tetap tersedia di arsip archive.org.

Hilangnya infrastruktur dan skrip CI bawaan (tersedia gratis untuk proyek OpenSource) memaksa kami untuk meninjau, menyatukan, dan menghilangkan sedikit utang teknis. Sekarang CI telah dipulihkan ke volume yang hampir sama (sekitar 100 konfigurasi build), dengan pengecualian membangun dan menjalankan tes untuk semua varian BSD dan Solaris. Menariknya, setelah tindakan GitHub, tidak ada klarifikasi atau pemberitahuan yang diterima, selain pengingat akan perlunya pembayaran.

Fitur baru utama libmdbx 0.11.7

Sejak berita terbaru tentang rilis libmdbx v0.11.3, selain pemulihan dari tindakan GitHub, peningkatan dan perbaikan berikut patut diperhatikan:

Sebanyak 185 perubahan dibuat menjadi 89 file, sekitar 3300 baris ditambahkan, sekitar 4100 dihapus. Dihapus terutama karena pembersihan file teknologi yang sudah tidak berguna yang terkait dengan GitHub dan layanan yang bergantung.

Menambahkan file perbaiki untuk efek/cacat inkonsistensi yang terdeteksi di halaman dan cache yang digabungkan buffer di kernel Linux. Pada sistem di mana cache halaman dan buffer benar-benar disatukan, tidak masuk akal jika kernel membuang memori pada dua salinan data dengan menulis ke file yang sudah dialokasikan memori. Oleh karena itu, data yang ditulis menjadi terlihat melalui alokasi memori sebelum panggilan sistem write() selesai, meskipun data belum ditulis ke disk.

Sama sekali perilaku lain tidak rasional, karena dengan penggabungan tertunda, Anda masih harus menangkap kunci untuk daftar halaman, menyalin data, atau menyesuaikan PTE. Jadi, aturan konsistensi yang tidak diucapkan telah ada sejak 1989, ketika cache buffer terpadu muncul di SVR4. Akibatnya, menemukan bug aneh dalam skenario produksi libmdbx yang sibuk membutuhkan banyak pekerjaan. Pertama, mereproduksi masalah, kemudian memverifikasi hipotesis dan memeriksa perbaikan.

Kami sekarang dapat dengan yakin mengatakan bahwa masalah telah diidentifikasi, ditemukan, dan dihapus dengan andal, terlepas dari kompleksitas dan kekhususan skenario pemutaran. Juga, pekerjaan mekanisme bypass dikonfirmasi oleh salah satu pengembang Erigon (Ethereum), dalam kasusnya, dalam pembuatan debug, perlindungan dipicu sebagai regresi karena pemeriksaan pernyataan tambahan.

Perlu dicatat bahwa dalam konteks meluasnya penggunaan libmdbx dalam proyek kerja, pada dasarnya lebih penting untuk memastikan operasi yang andal, daripada mencari tahu apakah itu bug atau fitur, dan apakah konsistensi tersebut dapat diandalkan. terutama tanpa mencari penyebab inkonsistensi dalam kernel Linux. Jadi, di sini kita berbicara tentang memperbaiki masalah yang dapat memengaruhi pengguna.

Memperbaiki regresi bug EXDEV (tautan antar perangkat) saat menyalin database tanpa pemadatan ke sistem file lain, baik melalui API maupun dengan utilitas mdbx_copy.
Kris Zyp telah menerapkan dukungan untuk libmdbx di Deno.

Memperbaiki penanganan nilai yang ditetapkan oleh opsi MDBX_opt_rp_augment_limit saat memproses transaksi besar pada database besar. Sebelumnya, karena bug, tindakan yang tidak perlu dapat dilakukan, terkadang memengaruhi kinerja pada implementasi Ethereum (Erigon/Akula/Silkworm) dan proyek Binance Chain.

Banyak bug telah diperbaiki, termasuk untuk C++ API dan memperbaiki banyak masalah build pada konfigurasi langka dan eksotis. Daftar lengkap semua peningkatan signifikan tersedia di ChangeLog.

Akhirnya, jika Anda tertarik untuk mengetahui lebih banyak tentangnya, Anda dapat berkonsultasi dengan detailnya Di tautan berikut.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.