rqlite ، نظام إدارة قواعد بيانات علاقي ممتاز وموزع وخفيف الوزن

Si كنت تبحث عن نظم إدارة قواعد البيانات الموزعة يستخدم SQLite كمحرك تخزين ، دعني أخبرك بذلك rqlite هو الخيار المناسب لك، لأنه يسمح بتنظيم عمل الكتلة من المستودعات المتزامنة مع بعضها البعض.

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

حول rqlite

تُستخدم خوارزمية توافق الطوافة للحفاظ على مزامنة جميع العقد. Rqlite استخدم مكتبة SQLite الأصلية وسائق go-sqlite3، بالإضافة إلى أنها تنفذ طبقة تعالج طلبات العميل ، وتكرر نفسها في العقد الأخرى وتراقب الإجماع الذي تم التوصل إليه بشأن اختيار العقدة الرئيسية.

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

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

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

يتم استخدام هذا السجل للنسخ المتماثل (النسخ المتماثل على مستوى إعادة عرض الاستعلام إلى العقد الأخرى) ، عند بدء عقدة جديدة ، أو للتعافي من فقدان الاتصال.

لتقليل حجم السجل ، يتم استخدام الحزم التلقائي ، والذي يبدأ بعد عدد محدد من التغييرات ويؤدي إلى تأكيد اللقطة ، التي يبدأ مقابلها سجل جديد (حالة قاعدة البيانات في الذاكرة مماثلة لـ snapshot + سجل التغيير المتراكم).

من ميزات rqlite:

  • سهولة نشر الكتلة دون الحاجة إلى تثبيت SQLite منفصل.
  • القدرة على الحصول بسرعة على تخزين SQL منسوخ.
  • جاهز للاستخدام في مشاريع الإنتاج.
  • توافر HTTP (S) API ، والذي يسمح بتحديث البيانات في وضع الدُفعات وتحديد العقدة الرئيسية للمجموعة. كما يتم توفير واجهة سطر الأوامر ومكتبات العميل لمختلف لغات البرمجة.
  • وجود خدمة لتحديد العقد الأخرى التي تسمح لك بإنشاء مجموعات ديناميكيًا.
  • دعم لتشفير تبادل البيانات بين العقد.
  • القدرة على تخصيص مستوى التحقق من ملاءمة البيانات واتساقها عند القراءة.
  • القدرة الاختيارية على توصيل عقد القراءة فقط التي لا تشارك في تحديد الإجماع وتُستخدم لزيادة قابلية المجموعة لعمليات القراءة.
  • دعم النموذج الأصلي للمعاملات استنادًا إلى تجميع الأوامر في طلب واحد (المعاملات القائمة على BEGIN و COMMIT و ROLLBACK و SAVEPOINT و RELEASE غير مدعومة).

حول rqlite 6.0

النسخة الجديدة يُدخل تغييرات معمارية مهمة تهدف إلى تحسين موثوقية المجموعة من خلال تحسين عملية توجيه طلبات القراءة والكتابة إلى العقد العنقودية الصحيحة.

عقد Rqlite الآن يمكن أن تعدد اتصالات منطقية متعددة بينهما باستخدام اتصالات TCP التي تم إنشاؤها بين العقد بواسطة بروتوكول Raft. إذا كان الطلب يتطلب سلطة العقدة البادئة ، ولكن تم إرساله إلى العقدة الثانوية ، يمكن للعقدة الثانوية تحديد عنوان القائد ونقله إلى العميل ، دون إجراء حساب توافق الطوافة.

أزال التغيير أيضًا المكون المنفصل لمزامنة البيانات الوصفية وأزال معالجة Raft المنفصلة للحالة والبيانات الوصفية.

ترسل العقد الثانوية الآن طلبات إلى العقدة الرئيسية فقط عند الضرورة ، عندما يكون من الضروري معرفة عنوان العقدة الرئيسية. يوفر API القدرة على الحصول على معلومات حول حالة العقد الأخرى في الكتلة. تمت إضافة أمر Sysdump إلى CLI.

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


اترك تعليقك

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

*

*

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