OrioleDB ، محرك تخزين جديد لـ PostgreSQL

orioleDB

يجمع OrioleDB بين مزايا محركات الأقراص والذاكرة ، مما يزيد من أداء قاعدة البيانات ويقلل التكاليف

في الآونة الأخيرة ، خبر نشر أ محرك تخزين جديد لـ PostgreSQL يسمى "OrioleDB"، الذي تم إنشاؤه بواسطة OrioleData.

الهدف من OrioleDB هو توفير تخزين سريع وصغير الحجمo لا يتسبب في زيادة التحميل على ملفات قاعدة البيانات بمرور الوقت وهذا لا يتطلب استخدام عملية الفراغ الذي يعمل بشكل دوري لجمع القمامة.

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

حول OrioleDB

كما ذكرنا سابقًا ، يعد OrioleDB محركًا جديدًا لـ PostgreSQL ، تم تطويره بهدف رئيسي واحد: منع تحميل الجداول بشكل زائد وللتخلص من الحاجة إلى الصيانة الدورية مثل VACUUM.

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

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

يتم الاحتفاظ بسجل معاملات WAL في OrioleDB على مستوى الصف ، وليس في كتل ، مما يجعله سهل الاستخدام في الأنظمة الموزعة ويسمح بالتوازي مع نشر التسجيل. من الممكن إنشاء تكوينات موزعة مع العديد من الخوادم الرئيسية النشطة ، لإبقائها في حالة متزامنة ، يتم استخدام خوارزمية توافق Raft.

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

يسمح استخدام OrioleDB لا تلغي فقط الحاجة إلى العمليات اليدوية وتبسيط صيانة نظام إدارة قواعد البيانات ، ولكن أيضًا زيادة الأداء. على سبيل المثال ، يتم تحقيق أداء أفضل من خلال تحديث البيانات الموجودة ، مما يؤدي إلى تجنب تغيير الفهارس التي لا تتعلق بتخزين القيمة المتغيرة. يدعم المحرك أيضًا تخزين البيانات في شكل مضغوط (يتم تنفيذ الضغط باستخدام خوارزمية ZSTD ويتم تنفيذه على مستوى الكتلة ذات الحجم المتغير) ، مما يسمح لك بتقليل حجم قاعدة البيانات على القرص بمقدار 4-5 مرات.

أظهر اختبار إعداد جدول واحد مع 5 فهارس باستخدام OrioleDB زيادة قدرها 5 أضعاف في TPS (تتم معالجة المعاملات في الثانية) ، وتقليل حمل وحدة المعالجة المركزية بمقدار 2.3 ضعفًا ، وانخفاض بمقدار 22 مرة في عمليات الإدخال / الإخراج لكل معاملة.

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

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

يمكنك التحقق من تفاصيل المنشور الأصلي على الرابط التالي.


اترك تعليقك

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

*

*

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