في SQLite ، يعملون بالفعل على خلفية HCTree مع دعم للكتابة المتوازية

سكليتي

هو نظام إدارة قواعد بيانات علائقية متوافق مع ACID ، موجود في مكتبة صغيرة نسبيًا مكتوبة بلغة C

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

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

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

مشروع HC-tree (hctree) هو محاولة لتطوير خلفية قاعدة بيانات جديدة تعمل على تحسين SQLite العادي على النحو التالي:

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

دعم النسخ المتماثل: يدعم Stock SQLite ملفات تمديد الجلسة، مما يسمح بإجراء تسلسل لمحتوى المعاملة الملتزم بها لإرسالها وتطبيقها في قاعدة بيانات ثانية. Hctree يدمج هذا في الخلفية لقاعدة البيانات ويضيف دعمًا لتطبيق مثل هذه المعاملات على قواعد بيانات المتابعين في تكوينات القائد-التابع. في هذه الحالة ، يمكن تطبيق المعاملات المستلمة من قاعدة بيانات رائدة بشكل أسرع وبتزامن أكبر من تلك المطبقة في الأصل على قاعدة البيانات الرائدة ، لأنه لا يوجد التحقق من صحة المعاملة.

إلغاء قيود حجم قاعدة البيانات: يستخدم Stock SQLite أرقام صفحات 32 بت. باستخدام حجم الصفحة الافتراضي البالغ 4 كيلوبايت ، يؤدي ذلك إلى حجم قاعدة بيانات أقصى يبلغ 2 ^ 44 بايت أو 16 تيرابايت.

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

يتم تنفيذ عمليات القراءة والكتابة بالنسبة إلى لقطة قاعدة البيانات ، والتي تصبح التغييرات مرئية لقاعدة البيانات الرئيسية فقط بعد اكتمال المعاملة.

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

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

يدعم HCtree النسخ المتماثل الرئيسي والعبد ، مما يسمح بنقل المعاملات إلى قاعدة بيانات أخرى والحفاظ على قواعد البيانات الثانوية متزامنة مع قاعدة البيانات الأساسية.

يزيل HCtree أيضًا حد حجم قاعدة البيانات: بدلاً من معرفات صفحات البيانات 32 بت ، يستخدم HCtree معرفات 48 بت ، مما يزيد الحد الأقصى لحجم قاعدة البيانات من 16 tebibytes إلى 1 exbibyte (مليون tebibytes).

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

مصدر: https://sqlite.org/


اترك تعليقك

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

*

*

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