إصدار نظام إدارة قواعد البيانات المدمج المدمج libmdbx 0.9.1

مطلق سراحه نسخة المكتبة 0.9.1 libmdbx (MDBX) تنفيذ قاعدة بيانات ذات قيمة أساسية مدمجة عالية الأداء. يتم توزيع كود libmdbx بموجب ترخيص رخصة OpenLDAP العامة.

الإصدار الحالي عبارة عن حل وسط بين نية إصدار إصدار مستقر طويل المدى 1.0 مع دعم كامل لـ C++ وبين الإحجام عن تأخير الإصدارات بسبب عدم الاستعداد لتجميد واجهة برمجة تطبيقات C++ الجديدة. الإصدار المقدم هو نتيجة 9 أشهر من العمل بهدف تحقيق الاستقرار في المكتبة وتحسين قابليتها للاستخدام، ويتضمن أيضًا نسخة أولية واجهة برمجة تطبيقات C ++.

مكتبة libmdbx ليست مجرد "مفترق"، بل هي سليل أعيد تصميمه بشكل جذري LMDB - نظام إدارة قواعد البيانات المضمن للمعاملات من فئة "قيمة المفتاح" بناءً على شجرة ب+ بدون التسجيل الاستباقي، والذي يسمح للعمليات متعددة الخيوط بالعمل بشكل تنافسي وفعال مع قاعدة بيانات مشتركة محليًا (غير متصلة بالشبكة) دون الحاجة إلى عملية خادم مخصصة. libmdbx بشكل أساسي يتوسع قدرات أسلافه، مع إزالة العيوب أو تخفيفها في نفس الوقت. في الوقت نفسه، وفقًا للمطورين، يعد libmdbx أسرع قليلاً وأكثر موثوقية من LMDB.

يقترح libmdbx حمضوالتسلسل الصارم للتغييرات والقراءة غير المحظورة مع القياس الخطي عبر مراكز وحدة المعالجة المركزية. نتائج اختبار الأداء (إرسال طلبات قراءة/بحث متوازية في سلاسل عمليات 1-2-4-8 على وحدة المعالجة المركزية i7-4600U مع نواتين فعليتين في وضع HyperThread رباعي الخيوط):

إصدار نظام إدارة قواعد البيانات المدمج المدمج libmdbx 0.9.1

أهم الاختلافات بين MDBX وLMDB:

  • بشكل أساسي، يتم إيلاء المزيد من الاهتمام لجودة التعليمات البرمجية واتساق واجهة برمجة التطبيقات (API) والاختبار والفحوصات التلقائية.
  • مزيد من التحكم بشكل ملحوظ أثناء التشغيل، بدءًا من فحص المعلمات وحتى التدقيق الداخلي لهياكل قاعدة البيانات.
  • الضغط التلقائي وإدارة حجم قاعدة البيانات تلقائيًا.
  • تنسيق قاعدة بيانات واحد لتجميعات 32 بت و64 بت.
  • تقدير أحجام العينات حسب النطاقات (تقدير استعلام النطاق).
  • دعم ضعف طول المفاتيح وحجم صفحة قاعدة البيانات التي يمكن للمستخدم تحديدها.
  • أداة مساعدة للتحقق من سلامة بنية قاعدة البيانات مع بعض إمكانيات الاسترداد.

الابتكارات والتحسينات الرئيسية بعد الاخبار السابقة مع طرح الإصدار 0.5 في يناير 2020:

  • تم إنشاء نظام مفتوح للدعم الفوري والإجابة على الأسئلة. مجموعة برقية.
  • تمت إزالة أكثر من عشرة أخطاء وأوجه قصور (انظر. التغيير).
  • تم إصلاح الكثير من الأخطاء المطبعية والإملائية، كما تم إجراء العديد من التحسينات التجميلية.
  • تم توسيع سيناريوهات الاختبار.
  • دعم لدائرة الرقابة الداخلية، أندرويد، بناء الجذور, مسل, uClibc, WSL1 и نبيذ.
  • تم إصدار معاينة C++ API في ملف رأس واحد.
  • وثائق مدمجة بتنسيق Doxygen والإنشاء التلقائي التوثيق عبر الإنترنت.
  • يتم توفير الإنشاء التلقائي للأرشيفات مع نصوص المصدر المدمجة.
  • تمت إضافة دعم لإعداد المعاملات والمؤشرات وسياقات المستخدم للمعاملات والمؤشرات.
  • تم تنفيذ طرق إضافية للتحكم في التكامل المرجعي في لقطات B+tree MVCC.
  • تمت إضافة دعم للتحقق من لقطة MVCC لقاعدة البيانات، والتي يمكن الوصول إليها من خلال أي صفحة تعريف مع إمكانية التبديل للاسترداد.
  • تم تنفيذ الدعم لإعادة فتح قاعدة البيانات من عملية واحدة لأغراض الاختبار، وما إلى ذلك.
  • تم تنفيذ المعالجة التلقائية لخيار MDBX_NOSUBDIR عند فتح قاعدة بيانات.
  • تمت إضافة وظائف لإنشاء مفاتيح أعداد صحيحة من قيم الفاصلة العائمة وأرقام JavaScript "العالمية".
  • في المجمل، تم إجراء 430 تغييرًا على 93 ملفًا، وإضافة أكثر من 25 ألف سطر، وحذف أكثر من 8.5 ألف سطر.

سيركز التطوير اللاحق لـ libmdbx على واجهة برمجة تطبيقات C++ النهائية، وزيادة استقرار الكود الأساسي، وتحسين سهولة استخدام المكتبة، والتعبئة لتوزيعات Linux الشائعة. من بين التحسينات المقترحة، تجدر الإشارة إلى دعم المفاتيح في التنسيق حزمة الرسائل.

المصدر: opennet.ru

إضافة تعليق