يصل libmdbx 0.11.7 مع ترحيل المشروع إلى GitFlic وإصلاحات الأخطاء والمزيد

ال إصدار مكتبة libmdbx الجديدة 0.11.7 ، إطلاق تبرز لترحيل المشروع إلى خدمة GitFlic بعد أن قامت إدارة GitHub بإزالة libmdbx مع عدد من المشاريع الأخرى في 15 أبريل 2022 دون أي تحذير أو تفسير ، مع حظر الوصول إلى العديد من المطورين المرتبطين بالشركات التي تخضع لعقوبات أمريكية.

من وجهة نظر المستخدم ، تحولت جميع الصفحات والمستودع والشوكات الخاصة بالمشروع فجأة إلى صفحة "404" ، دون إمكانية الاتصال ودون معرفة الأسباب.

لسوء الحظ ، تم فقد جميع الإصدارات تقريبًا، حيث كان هناك العديد من الأسئلة مع إجابات مفصلة ، بالإضافة إلى العديد من المناقشات. يعد فقدان هذه المعلومات هو الضرر الموضوعي الوحيد الذي تمكنت إدارة GitHub من إلحاقه بالمشروع ، على الرغم من أن النسخ الجزئية من المناقشات تظل متاحة في أرشيف archive.org.

أجبرنا فقدان البنية التحتية والنصوص المدمجة لـ CI (المتاحة مجانًا لمشاريع OpenSource) على مراجعة وتوحيد وإزالة القليل من الديون الفنية. الآن تمت استعادة CI إلى نفس الحجم تقريبًا (حوالي 100 تكوين بناء) ، باستثناء بناء وتشغيل الاختبارات لجميع متغيرات BSD و Solaris. بصراحة ، بعد إجراءات GitHub ، لم يتم تلقي أي توضيحات أو إخطارات ، باستثناء تذكير بالحاجة إلى الدفع.

الميزات الرئيسية الجديدة لـ libmdbx 0.11.7

منذ آخر الأخبار حول إصدار libmdbx v0.11.3 ، بالإضافة إلى التعافي من إجراءات GitHub ، تجدر الإشارة إلى التحسينات والإصلاحات التالية:

تم إجراء ما مجموعه 185 تغييرًا على 89 ملفًا ، وتمت إضافة ما يقرب من 3300 سطر ، تمت إزالة حوالي 4100. تمت الإزالة بشكل أساسي بسبب تطهير الملفات التقنية غير المفيدة بالفعل والمرتبطة بـ GitHub والخدمات التابعة.

تمت إضافة أ إصلاح لتأثير / عيب تم اكتشاف عدم تناسق في الصفحة المدمجة وذاكرة التخزين المؤقت من المخزن المؤقت في Linux kernel. في الأنظمة التي تكون فيها ذاكرة التخزين المؤقت للصفحة والمخزن المؤقت موحدة حقًا ، ليس من المنطقي أن تضيع النواة الذاكرة على نسختين من البيانات عن طريق الكتابة إلى ملف مخصص للذاكرة بالفعل. لذلك ، تصبح البيانات المكتوبة مرئية من خلال تخصيص الذاكرة قبل اكتمال استدعاء نظام الكتابة () ، حتى إذا لم تتم كتابة البيانات على القرص بعد.

لا يعد السلوك الآخر عقلانيًا ، لأنه مع الدمج المتأخر ، لا يزال يتعين عليك التقاط أقفال لقوائم الصفحات أو نسخ البيانات أو ضبط PTE. وبالتالي ، فإن قاعدة الاتساق غير المعلنة كانت سارية منذ عام 1989 ، عندما ظهرت ذاكرة التخزين المؤقت الموحدة في SVR4. نتيجة لذلك ، كان العثور على أخطاء غريبة في سيناريوهات إنتاج libmdbx المزدحمة يتطلب الكثير من العمل. أولاً ، إعادة إنتاج المشكلة ، ثم التحقق من الفرضيات والتحقق من التحسينات.

يمكننا الآن أن نقول بثقة أنه تم تحديد المشكلة وتحديد مكانها وإزالتها بشكل موثوق ، على الرغم من تعقيد وخصوصية سيناريو التشغيل. أيضًا ، تم تأكيد عمل آلية الالتفاف من قبل أحد مطوري Erigon (Ethereum) ، في حالته ، في بناء التصحيح ، تم تشغيل الحماية على أنها انحدار بسبب فحص التأكيد الإضافي.

تجدر الإشارة إلى أنه في سياق الاستخدام الواسع النطاق لـ libmdbx في مشاريع العمل ، من المهم بشكل أساسي ضمان التشغيل الموثوق به ، بدلاً من معرفة ما إذا كان خطأ أو ميزة ، وما إذا كان يمكن الاعتماد على هذا الاتساق خاصةً دون البحث عن أسباب التناقض داخل نواة Linux. لذلك ، نحن نتحدث هنا عن إصلاح مشكلة قد تؤثر على المستخدمين.

تم إصلاح تراجع خطأ EXDEV (الربط بين الأجهزة) عند النسخ السريع لقاعدة البيانات دون الضغط على نظام ملفات آخر ، سواء من خلال API أو باستخدام الأداة المساعدة mdbx_copy.
نفذ Kris Zyp دعمًا لـ libmdbx على Deno.

معالجة ثابتة للقيمة المحددة بواسطة خيار MDBX_opt_rp_augment_limit عند معالجة المعاملات الكبيرة على قواعد البيانات الكبيرة. في السابق ، نظرًا لوجود خطأ ، كان من الممكن تنفيذ إجراءات غير ضرورية ، مما يؤثر أحيانًا على الأداء في تطبيقات Ethereum (Erigon / Akula / Silkworm) ومشروعات Binance Chain.

تم إصلاح العديد من الأخطاء ، بما في ذلك تلك الخاصة بواجهة برمجة تطبيقات C ++ وإصلاح العديد من مشكلات الإنشاء في التكوينات النادرة والغريبة. تتوفر قائمة كاملة بجميع التحسينات الهامة في سجل التغيير.

أخيرًا ، إذا كنت مهتمًا بمعرفة المزيد عنها ، يمكنك الرجوع إلى التفاصيل في الرابط التالي.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.