يقوم مطورو SQLite بتطوير الواجهة الخلفية لشجرة HC مع دعم الكتابة المتوازية

بدأ مطورو مشروع SQLite باختبار الواجهة الخلفية التجريبية لـ HCtree التي تدعم القفل على مستوى الصف وتوفر مستوى عالٍ من التوازي عند معالجة الاستعلامات. تهدف الواجهة الخلفية الجديدة إلى تحسين كفاءة استخدام SQLite في أنظمة خادم العميل التي يتعين عليها معالجة عدد كبير من طلبات الكتابة المتزامنة إلى قاعدة البيانات.

لم يتم تصميم هياكل b-tree المستخدمة أصلاً في SQLite لتخزين البيانات لهذا النوع من التحميل، مما يحد من قدرة SQLite على الكتابة إلى مؤشر ترابط واحد فقط. كتجربة، بدأ المطورون في تطوير حل بديل يستخدم هياكل شجرة HC للتخزين، والتي تكون أكثر ملاءمة لموازاة عمليات الكتابة.

للسماح بتشغيل عمليات متعددة بشكل متزامن، يستخدم سجل HCtree آلية تقسيم المعاملات التي تستخدم القفل على مستوى الصفحة وتشبه MVCC (التحكم في التزامن متعدد الإصدارات) ولكنها تستخدم عمليات التحقق من المعاملات بناءً على المفاتيح ونطاقات المفاتيح بدلاً من مجموعات الصفحات. يتم تنفيذ عمليات القراءة والكتابة فيما يتعلق بلقطة قاعدة بيانات، ولا تصبح التغييرات التي تطرأ عليها مرئية في قاعدة البيانات الرئيسية إلا بعد اكتمال المعاملة.

يمكن للعملاء استخدام ثلاث عمليات معاملة مفتوحة:

  • "البدء" - لا تأخذ المعاملات في الاعتبار بيانات الوصول الخاصة بالعملاء الآخرين. إذا تم تنفيذ عمليات الكتابة ضمن معاملة، فلا يمكن تنفيذ المعاملة إلا إذا لم تكن هناك عمليات كتابة أخرى في قاعدة البيانات أثناء تنفيذها.
  • "البدء المتزامن" - تجمع المعاملات معلومات حول وصول العملاء الآخرين. إذا تم تنفيذ عمليات الكتابة ضمن معاملة، فيمكن تنفيذ المعاملة إذا تم تنفيذ معاملات أخرى في قاعدة البيانات منذ إنشاء اللقطة.
  • "البدء حصريًا" - بعد فتح المعاملة، يقوم بحظر العمليات من المعاملات الأخرى حتى اكتمالها.

يدعم HCtree النسخ المتماثل الرئيسي والتابع، والذي يسمح لك بترحيل المعاملات إلى قاعدة بيانات أخرى والحفاظ على مزامنة قواعد البيانات الثانوية مع قاعدة البيانات الأساسية. يزيل HCtree أيضًا القيود المفروضة على حجم قاعدة البيانات - فبدلاً من معرفات صفحة البيانات 32 بت، يستخدم HCtree معرفات 48 بت، مما يزيد الحد الأقصى لحجم قاعدة البيانات من 16 تيبيبايت إلى 1 إكسبيبايت (مليون تيبيبايت). من المتوقع ألا يكون أداء SQLite مع الواجهة الخلفية HCtree أقل من الواجهة الخلفية الكلاسيكية ذات الخيط الواحد. سيتمكن عملاء SQLite الذين يدعمون HCtree من الوصول إلى قواعد البيانات المستندة إلى HC-tree وقواعد بيانات SQLite القديمة.

المصدر: opennet.ru

إضافة تعليق