إصدار TiDB 3.0 لنظام DBMS الموزع

متاح توزيع إصدار DBMS TiDB3.0تم تطويره تحت تأثير تقنيات Google مفتاح البراغي и F1. ينتمي TiDB إلى فئة أنظمة HTAP (المعاملات الهجينة / المعالجة التحليلية) القادرة على توفير المعاملات في الوقت الفعلي (OLTP) ومعالجة الاستعلامات التحليلية. المشروع مكتوب بلغة Go و وزعت من خلال مرخص بموجب Apache 2.0.

ميزات TiDB:

  • دعم SQL وتوفير واجهة عميل متوافقة مع بروتوكول MySQL ، مما يجعل من السهل تكييف التطبيقات الحالية المكتوبة لـ MySQL مع TiDB ، كما يسمح لك باستخدام مكتبات العملاء الشائعة. بالإضافة إلى بروتوكول MySQL ، يمكنك استخدام API المستندة إلى JSON والموصل لـ Spark للوصول إلى DBMS.
  • من بين ميزات SQL ، يتم دعم الفهارس والوظائف التجميعية GROUP BY و ORDER BY والتعبيرات المميزة والدمج (LEFT JOIN / RIGHT JOIN / CROSS JOIN) وطرق العرض ووظائف النافذة والاستعلامات الفرعية. الفرص المتاحة كافية لتنظيم العمل مع TiDB لتطبيقات الويب مثل PhpMyAdmin ، Gogs وورد ؛
  • التوسع والمرونة: يمكن زيادة سعة التخزين والمعالجة ببساطة عن طريق إضافة عقد جديدة. يتم توزيع البيانات عبر العقد مع التكرار للسماح بمواصلة العمليات في حالة فشل العقد الفردية. يتم التعامل مع حالات الفشل تلقائيًا.
  • يضمن النظام الاتساق ويبدو كأنه نظام DBMS واحد كبير لبرنامج العميل ، على الرغم من حقيقة أن البيانات من العديد من العقد تُستخدم بالفعل لإكمال المعاملة.
  • يمكن استخدام الخلفيات المختلفة لتخزين البيانات المادية على العقد ، على سبيل المثال ، محركات التخزين المحلية GoLevelDB و BoltDB أو محرك تخزين موزع خاص تيكف.
  • القدرة على تغيير مخطط التخزين بشكل غير متزامن ، مما يسمح لك بإضافة أعمدة وفهارس بسرعة دون إيقاف معالجة العمليات الجارية.

رئيسي الابتكارات:

  • تم العمل على زيادة الإنتاجية. في اختبار Sysbench ، تفوق الإصدار 3.0 على الفرع 2.1 بمقدار 1.5 مرة في عمليات التحديد والتحديث ، وفي اختبار TPC-C بمقدار 4.5 مرة. أثرت التحسينات على أنواع مختلفة من الاستعلامات ، بما في ذلك الاستعلامات الفرعية "IN" و "DO" و "NOT EXISTS" وعمليات دمج الجداول (JOIN) واستخدام الفهارس والمزيد ؛
    إصدار TiDB 3.0 لنظام DBMS الموزعإصدار TiDB 3.0 لنظام DBMS الموزع

  • تمت إضافة محرك تخزين جديد ، TiFlash ، لتحقيق أداء تحليلي أفضل (OLAP) من خلال التخزين المرتبط بالعمود. يكمل TiFlash تخزين TiKV المعروض مسبقًا ، والذي يخزن البيانات في سياق الصفوف بتنسيق مفتاح / قيمة وهو أكثر ملاءمة لمهام معالجة المعاملات (OLTP). يعمل TiFlash جنبًا إلى جنب مع TiKV وتستمر البيانات في النسخ المتماثل إلى TiKV كما كان من قبل باستخدام بروتوكول Raft لتحديد الإجماع ، ولكن لكل مجموعة من نسخ الطوافة المتماثلة يتم إنشاء نسخة متماثلة إضافية واستخدامها في TiFlash. يسمح هذا النهج بتقسيم أفضل للموارد بين مهام OLTP و OLAP ، كما يجعل بيانات المعاملات متاحة على الفور للاستعلامات التحليلية ؛

    إصدار TiDB 3.0 لنظام DBMS الموزع

  • تم تطبيق أداة تجميع القمامة الموزعة ، والتي يمكن أن تزيد بشكل كبير من سرعة جمع القمامة في مجموعات كبيرة وتحسن الاستقرار ؛
  • تمت إضافة تنفيذ تجريبي لنظام التحكم في الوصول المستند إلى الدور (RBAC). من الممكن أيضًا تعيين حقوق الوصول لعمليات التحليل والاستخدام والتعيين العالمي وقائمة عمليات العرض ؛
  • تمت إضافة القدرة على استخدام تعبيرات SQL للاستخراج من سجل الاستعلام البطيء ؛
  • نفذت آلية لاستعادة سريعة للجداول المحذوفة ، مما يسمح لك باستعادة البيانات المحذوفة عن طريق الخطأ ؛
  • تنسيق موحد للسجلات المسجلة ؛
  • دعم إضافي لوضع القفل المتشائم ، مما يجعل معالجة المعاملات أقرب إلى MySQL ؛
  • دعم إضافي لوظائف النافذة (وظائف النافذة أو الوظائف التحليلية) المتوافقة مع MySQL 8.0. تسمح وظائف النافذة لكل صف من استعلام بإجراء عمليات حسابية باستخدام صفوف أخرى. على عكس الدالات التجميعية ، التي تنهار مجموعة صفوف مجمعة في صف واحد ، تتجمع وظائف النافذة بناءً على محتويات "النافذة" التي تتضمن صفًا واحدًا أو أكثر من مجموعة النتائج. من بين وظائف النافذة المنفذة:
    NTILE و LEAD و LAG و PERCENT_RANK و NTH_VALUE و CUME_DIST و FIRST_VALUE و LAST_VALUE و RANK و DENSE_RANK و ROW_NUMBER ؛

  • تمت إضافة الدعم التجريبي للعرض (VIEW) ؛
  • نظام التقسيم المحسن (التقسيم) ، إضافة القدرة على توزيع البيانات إلى أقسام بناءً على مجموعة من القيم أو التجزئة ؛
  • تمت إضافة إطار عمل لتطوير المكونات الإضافية ، على سبيل المثال ، تم بالفعل إعداد المكونات الإضافية لاستخدام قائمة IP البيضاء أو تسجيل التدقيق ؛
  • توفير دعم تجريبي لوظيفة "تفسير التحليل" لبناء خطة تنفيذ استعلام SQL (إدارة خطة SQL) ؛
  • تمت إضافة الأمر next_row_id للحصول على معرف الصف التالي ؛
  • تمت إضافة وظائف مضمنة جديدة JSON_QUOTE و JSON_ARRAY_APPEND و JSON_MERGE_PRESERVE و BENCHMARK و COALESCE و NAME_CONST.

المصدر: opennet.ru

إضافة تعليق