أباتشي كاساندرا 4.0 نظام إدارة قواعد البيانات متاح

قدمت مؤسسة Apache Software Foundation إصدار DBMS Apache Cassandra 4.0 الموزع، والذي ينتمي إلى فئة أنظمة noSQL وهو مصمم لإنشاء تخزين موثوق وقابل للتطوير بدرجة كبيرة لكميات هائلة من البيانات المخزنة في شكل مصفوفة ترابطية (تجزئة). يعتبر إصدار Cassandra 4.0 جاهزًا لتنفيذ الإنتاج وقد تم اختباره بالفعل في البنى التحتية لـ Amazon وApple وDataStax وInstaclustr وiland وNetflix مع مجموعات تضم أكثر من 1000 عقدة. كود المشروع مكتوب بلغة Java ويتم توزيعه بموجب ترخيص Apache 2.0.

تم تطوير نظام Cassandra DBMS في الأصل بواسطة Facebook وتم نقله في عام 2009 تحت رعاية مؤسسة Apache. تم نشر الحلول الصناعية المعتمدة على Cassandra لتشغيل الخدمات من شركات مثل Apple وAdobe وCERN وCisco وIBM وHP وComcast وDisney وeBay وHuawei وNetflix وSony وRackspace وReddit وTwitter. على سبيل المثال، تحتوي البنية التحتية للتخزين المستندة إلى Apache Cassandra والتي نشرتها شركة Apple على أكثر من ألف مجموعة، بما في ذلك 160 ألف عقدة وتخزين أكثر من 100 بيتابايت من البيانات. وتستخدم هواوي أكثر من 300 مجموعة من مجموعات Apache Cassandra، تضم 30 ألف عقدة، وتستخدم Netflix أكثر من 100 مجموعة، تغطي 10 آلاف عقدة وتعالج أكثر من تريليون طلب يوميًا.

يجمع نظام Cassandra DBMS بين نظام تجزئة Dynamo الموزع بالكامل، والذي يوفر قابلية توسع خطية تقريبًا مع زيادة حجم البيانات. تستخدم Cassandra نموذجًا لتخزين البيانات يعتمد على عائلة الأعمدة (ColumnFamily)، والتي تختلف عن أنظمة مثل memcachedb، التي تخزن البيانات فقط في سلسلة المفاتيح/القيمة، من خلال القدرة على تنظيم تخزين التجزئة مع عدة مستويات من التداخل. لتبسيط التفاعل مع قاعدة البيانات، يتم دعم لغة الاستعلام المنظمة CQL (لغة استعلام Cassandra)، والتي تذكرنا بـ SQL، ولكنها ذات وظائف أقل. تتضمن الميزات دعم مساحات الأسماء وعائلات الأعمدة، وإنشاء الفهارس باستخدام تعبير "CREATE INDEX".

يسمح لك نظام إدارة قواعد البيانات (DBMS) بإنشاء تخزين مقاوم للفشل: يتم نسخ البيانات الموجودة في قاعدة البيانات تلقائيًا إلى عدة عقد في شبكة موزعة، والتي يمكن أن تمتد إلى مراكز بيانات مختلفة. عندما تفشل عقدة ما، يتم التقاط وظائفها بسرعة بواسطة العقد الأخرى. تتم إضافة عقد جديدة إلى المجموعة وتحديث إصدار Cassandra بسرعة، دون تدخل يدوي إضافي أو إعادة تكوين العقد الأخرى. تم إعداد برامج التشغيل التي تدعم CQL لـ Python وJava (JDBC/DBAPI2) وRuby وPHP وC++ وJavaScript (Node.js).

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

  • تحسين الأداء وقابلية التوسع. تم تحسين كفاءة تبادل البيانات بتنسيق SSTable (جدول السلاسل المصنفة) بين العقد. تم تحسين بروتوكول المراسلة Internode. زادت سرعة نقل تدفقات البيانات بين العقد بما يصل إلى 5 مرات (ويرجع ذلك أساسًا إلى استخدام تقنية Zero Copy ونقل جداول SSTables بأكملها)، كما زاد إنتاجية عمليات القراءة والكتابة إلى 25%. تم تحسين عملية الاسترداد المتزايدة. يتم تقليل زمن الوصول بسبب الإيقاف المؤقت لجمع البيانات المهملة إلى بضعة مللي ثانية.
  • تمت إضافة دعم لسجل التدقيق الذي يسمح لك بتتبع عمليات مصادقة المستخدم وجميع استعلامات CQL المنفذة.
  • تمت إضافة القدرة على الاحتفاظ بسجل الطلبات الثنائية الكامل، مما يسمح لك بحفظ جميع حركة مرور الطلبات والاستجابة. بالنسبة للإدارة، يتم اقتراح الأوامر "nodetool Enablefullquerylog|disablefullquerylog|resetfullquerylog"، ويتم توفير الأداة المساعدة fqltool لتحليل السجل. يتم توفير الأوامر لتحويل السجل إلى نموذج قابل للقراءة (تفريغ)، ومقارنة شرائح النشاط (مقارنة)، وإعادة التنفيذ (إعادة التشغيل) لتحليل إعادة إنتاج الظروف الكامنة في التحميل الحقيقي.
  • تمت إضافة دعم للجداول الافتراضية التي لا تعكس البيانات المخزنة في جداول SSTables، بل تعكس إخراج المعلومات عبر واجهة برمجة التطبيقات (مقاييس الأداء، ومعلومات الإعدادات، ومحتويات ذاكرة التخزين المؤقت، ومعلومات حول العملاء المتصلين، وما إلى ذلك).
  • تم تحسين كفاءة تخزين البيانات المضغوطة، مما يقلل من استهلاك مساحة القرص ويحسن أداء القراءة.
  • يتم الآن وضع البيانات المتعلقة بمساحة مفاتيح النظام (system.*) في الدليل الأول افتراضيًا بدلاً من توزيعها عبر جميع دلائل البيانات، مما يسمح للعقدة بالبقاء قيد التشغيل في حالة فشل أحد الأقراص الإضافية.
  • تمت إضافة دعم تجريبي للنسخ المتماثل العابر والنصاب الرخيص. لا تقوم النسخ المتماثلة المؤقتة بتخزين كافة البيانات وتستخدم الاستعادة التزايدية لتتوافق مع النسخ المتماثلة الكاملة. تنفذ النصاب القانوني الخفيف عملية تحسين الكتابة حيث لا تتم أي عمليات كتابة للنسخ المتماثلة المؤقتة حتى تتوفر مجموعة كافية من النسخ المتماثلة الكاملة.
  • تمت إضافة الدعم التجريبي لـ Java 11.
  • تمت إضافة خيار تجريبي لمقارنة جميع أشجار Merkle. على سبيل المثال، سيؤدي تمكين الخيار على مجموعة مكونة من 3 عقد تكون فيها نسختان متماثلتان متماثلتان وواحدة قديمة إلى تحديث النسخة المتماثلة التي لا معنى لها باستخدام عملية نسخ واحدة فقط للنسخة المتماثلة الحالية.
  • تمت إضافة وظائف جديدة currentTimestamp وcurrentDate وcurrentTime وcurrentTimeUUID.
  • تمت إضافة دعم للعمليات الحسابية في استعلامات CQL.
  • يتم توفير القدرة على إجراء العمليات الحسابية بين البيانات بأنواع "الطابع الزمني"/"التاريخ" و"المدة".
  • تمت إضافة وضع لمعاينة تدفقات البيانات المطلوبة للاسترداد (إصلاح أداة العقدة —معاينة) والقدرة على التحقق من سلامة البيانات التي يتم استعادتها (إصلاح أداة العقدة —التحقق من الصحة).
  • تتمتع استعلامات SELECT الآن بالقدرة على معالجة عناصر الخريطة والتعيين.
  • تمت إضافة دعم لموازاة مرحلة البناء الأولية للمشاهدات المتحققة (cassandra.yaml:concurrent_materialized_view_builders).
  • أضاف الأمر "nodetool cfstats" دعمًا للفرز حسب مقاييس معينة والحد من عدد الصفوف المعروضة.
  • يتم توفير الإعدادات لتقييد اتصال المستخدم بمراكز بيانات معينة فقط.
  • تمت إضافة القدرة على الحد من كثافة (حد المعدل) لعمليات إنشاء اللقطة ومسحها.
  • يدعم cqlsh وcqlshlib الآن Python 3 (لا يزال Python 2.7 مدعومًا).
  • لقد تم إيقاف دعم نظام التشغيل Windows. لتشغيل Cassandra على Windows، يوصى باستخدام بيئات Linux التي تم إنشاؤها على أساس نظام WSL2 الفرعي (نظام Windows الفرعي لنظام Linux 2) أو أنظمة المحاكاة الافتراضية.



المصدر: opennet.ru

إضافة تعليق