يأتي libmdbx 0.10.4 مع العديد من التحسينات وإصلاحات الأخطاء

الافراج عن مكتبات الإصدار 0.10.4 "libmdbx" في المجموع ، تم إجراء أكثر من 160 تغييرًا على 57 ملفًا ، وتمت إضافة 5000 سطر تقريبًا وإزالة 2500 سطر تقريبًا. بالنسبة لأولئك الذين ليسوا على دراية بـ libmdbx ، يجب أن تعلم أن هذه مجموعة من المكتبات التي تمثل تنفيذ قاعدة بيانات مدمجة عالية الأداء لفئة قيمة المفتاح.

تاريخيا ، libmdbx هو إعادة صياغة عميقة لنظام LMDB DBMS ويتفوق على سابقتها في الموثوقية ومجموعة الميزات والأداء. مقارنة بـ LMDB ، يركز libmdbx كثيرًا على جودة الكود واستقرار واجهة برمجة التطبيقات والاختبار والفحوصات الآلية. يتم توفير أداة مساعدة للتحقق من سلامة بنية قاعدة البيانات مع بعض خيارات الاسترداد.

من الناحية التكنولوجية ، يقدم libmdbx ACID ، وتسلسلًا صارمًا للتغيير ، وقراءات غير محظورة مع تحجيم خطي على النوى من وحدة المعالجة المركزية. يدعم الضغط التلقائي والتحكم التلقائي في حجم قاعدة البيانات وتقدير استعلام النطاق. منذ عام 2016 ، تم تمويل المشاريع من قبل شركة Positive Technologies وتم استخدامها في منتجاتها منذ عام 2017.

بالنسبة لـ libmdbx ، يتم تقديم واجهة برمجة تطبيقات C ++ ، بالإضافة إلى روابط صديقة للمتحمسين لـ Rust و Haskell و Python و NodeJS و Ruby و Go و Nim. بالنسبة إلى libfpta ، يتوفر فقط وصف API في شكل ملف رأس C / C ++ للجمهور.

بالإضافة إلى دعم Linux و Windows و MacOS و Android و iOS و FreeBSD و DragonFly و Solaris و OpenSolaris و OpenIndiana و NetBSD و OpenBSD وأنظمة أخرى متوافقة POSIX.1-2008.

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

في هذا الإصدار الجديد من libmdbx 0.10.4 عمل المطورون ليكونوا قادرين على توفير القدرة على الإنشاءات القابلة للتكرار ، بالإضافة إلى أنه تم تحسين الاختبارات وتم توسيع البرامج النصية للاختبار للتحقق من جميع الحالات غير المتشابهة التي يمكن الوصول إليها لشجرة الصفحة ومحتوى GC داخل قاعدة البيانات.

في C ++ API تم إصلاحه مرة واحدة "noexcept" ، إضافة حمل زائد لطريقة "cursor :: erase ()" ، يتم التخفيف من تنفيذ المخازن المؤقتة باستخدام "std :: string" لضمان المحاذاة (الحالية لـ CLANG libstdc ++)

بالإضافة إلى ذلك ، تم تسليط الضوء أيضًا على أن تم إجراء تحقق تدريجي مع إضافة سلسلة من عمليات التحقق لضمان الاستقرار في حالة الضرر المتعمد لقاعدة البيانات.

من ناحية أخرى ، تم تسليط الضوء على أن البحث عن مكونات المترجم الضرورية لـ LTO (تحسين وقت الارتباط) قد تم تحسينه في نصوص CMake ، بالإضافة إلى حقيقة أن الحد الأقصى لعدد القراء المتزامنين قد تم زيادته إلى 32.767 وكذلك تم تحسين الأداء عند استخدام Valgrind و AddressSanitizer.

بخصوص إصلاحات الشوائب التي تم صنعها في هذا الإصدار الجديد ، نذكر ما يلي:

  • تم إصلاح الخلل حيث ، في حالات نادرة جدًا ، قد تحدث حلقة / عطل أثناء تنفيذ المعاملة. تم تحديد المشكلة من قبل متخصصين من شركة Positive Technologies أثناء الاختبارات الداخلية لمنتجاتهم الخاصة.
  • تم إصلاح الانحدار في خوارزمية تسرب الصفحة القذرة (الإخلاء الانتقائي لصفحات قاعدة البيانات المتغيرة) التي تظهر في خطأ نادر غير متوقع MDBX_PROBLEM عند تغيير البيانات في المعاملات الكبيرة.
  • تم إصلاح مشكلات UndefinedBehaviorSanitizer و Coverity Scan الثانوية.
    تم إصلاح التحقق من وجود علامة داخلية مهملة وغير مستخدمة "P_DIRTY" على الصفحات المتداخلة في صور قاعدة البيانات التي تم إنشاؤها بواسطة الإصدارات القديمة من المكتبة.
  • الاستخدام المتكرر الثابت لقفل SRW على نظام التشغيل Windows عند العمل في وضع MDBX_NOTLS (بدون استخدام التخزين المحلي للخيط) ، وتوليد التمهيد الثابت عند تغيير وقت النظام ، وتحسين اكتشاف WSL1 و WSL2 ، تمت إضافة القدرة على فتح قاعدة بيانات Plan 9 المثبتة باستخدام DrvFS.

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


اترك تعليقك

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

*

*

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