أباتشي كاساندرا

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

## التاريخ
طُوّر أباتشي كاساندرا في البداية لصالح شركة فيسبوك (ميتا حاليا) على يد كل من براشانت مالك وأفيناش لاكشمان، المؤلف المشارك في مشروع دينامو، وهو نظام تخزين البيانات الخاص شركة أمازون، كأداة لدعم وظيفة البحث في البريد الوارد في موقع فيسبوك، وقد أطلقا عليه هذا الاسم نسبة إلى كاساندرا عرافة طروادة الأسطورية، في إشارة إلى لعنتها المتمثلة في نبوءاتها التي لم تُصدق أبدا. طرحت شركة فيسبوك أباتشي كاساندرا بعد ذلك كبرنامج مفتوح المصدر على منصة جوجل كود في يوليو (تموز) 2008. وفي مارس (آذار) 2009، أصبح أباتشي كاساندرا مشروعًا تابعًا لحاضنة أباتشي. وفي 17 فبراير (شباط) 2010، ارتقى إلى مستوى أعلى.

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

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

## نموذج البيانات
بصفته مخزنًا واسع الأعمدة، يجمع أباتشي كاساندرا بين ميزات كلٍّ من أنظمة قواعد البيانات ذات القيمة المفتاحية والجدولية، ويُطبّق نموذج مخزن صفوف مُقسّم بمستويات اتساق قابلة للتعديل. ويُقارن الجدول التالي بين نموذج أباتشي كاساندرا لإدارة قواعد البيانات وبين نماذج إدارة قواعد البيانات العلائقية:

يتكون نموذج البيانات من عدة مكونات هرمية:

### مساحة المفاتيح
تُشبه مساحة المفاتيح في أباتشي كاساندرا قاعدة البيانات في أنظمة إدارة قواعد البيانات العلائقية. تحتوي مساحة المفاتيح على جداول متعددة وتُدير معلومات التكوين، بما في ذلك استراتيجية التكرار والأنواع المُعرّفة من قِبَل المستخدم (UDTs).

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

### الصفوف والأعمدة
يُعرّف كل صف بمفتاح أساسي ويحتوي على أعمدة. ويكون المكون الأول للمفتاح الأساسي للجدول هو مفتاح القسم. وفي داخل القسم، تُجمّع الصفوف حسب الأعمدة المتبقية من المفتاح.

تحتوي الأعمدة على بيانات الصف، وتتكون من:

* اسم

* نوع

* قيمة

* بيانات تعريف الطابع الزمني، والتي تُستخدم لحل تعارضات الكتابة من خلال آخر عملية كتابة ناجحة.

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

## نموذج التخزين
يستخدم أباتشي كاساندرا فهرس شجرة الدمج الهيكلية اللوغاريتمية لتحسين معدل الكتابة، على عكس فهارس شجرة بي المستخدمة في معظم قواعد البيانات الأخرى. ويوضح الجدول التالي الاختلاف في نموذج التخزين بين أباتشي كاساندرا وأنظمة قواعد البيانات علائقية:

تتكون بنية نموذج التخزين في أباتشي كاساندرا من ثلاثة مكونات رئيسية:

### المكونات الأساسية

* **سجل الإجراءات:** سجل كتابة مسبقة يضمن استمرارية الكتابة.

* **جدول الذاكرة:** بنية بيانات في الذاكرة تخزن عمليات الكتابة، مرتبة حسب المفتاح الأساسي.

* **جدول السلاسل المرتبة:** وهي ملفات ثابتة تحتوي على بيانات مسحت من جداول الذاكرة.

### عمليات الكتابة والقراءة
تمر عمليات الكتابة في أباتشي كاساندرا بمرحلتين:

# تُسجل عملية الكتابة في سجل الإجراءات وتُضاف إلى جدول الذاكرة.
# عندما يصل جدول الذاكرة إلى الحجم أو الوقت الأقصى، يتم مسحه ونقله إلى جدول الذاكرة.

عمليات القراءة:

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

### إدارة البيانات

#### أداة الحذف
تُنشئ كل عملية (إنشاء/تحديث/حذف) مُدخلًا جديدًا، ويتم التعامل مع عمليات الحذف من خلال أداة الحذف «تومبستون». وعلى الرغم من شيوعها في العديد من قواعد البيانات، إلا أن أداة تومبستون قد تُسبب انخفاضًا في الأداء في أحمال العمل التي تتطلب حذفًا مكثفًا.

#### الضغط
يُدمج الضغط جداول سلاسل مرتبة متعددة لتحقيق ما يلي:

* تقليل استخدام مساحة التخزين

* إزالة أداة تومبستون من الصفوف المحذوفة
* تحسين أداء القراءة

## لغة الاستعلام
يستخدم نموذج أباتشي كاسادرا لغة استعلام كاساندرا (CQL) كواجهة للوصول بدلا من استخدام لغة الاستعلام الهيكلية (SQL) التقليدية. تضيف لغة استعلام كاسادرا طبقة تجريد تُخفي تفاصيل تطبيق هذه البنية، وتوفر صيغًا أصلية للمجموعات والترميزات الشائعة الأخرى. كما تتوفر برامج تشغيل للغات الجافا (جي دي بي سي)، والبايثون (دي بي إيه بي 12)، والنود.جي إس (داتاستاكس)، وسي++.

مساحة المفاتيح في أباتشي كاساندرا هي مساحة اسم تُعرّف تكرار البيانات عبر العقد. لذلك، يُعرّف التكرار على مستوى مساحة المفاتيح. وفيما يلي مثال على إنشاء مساحة المفاتيح، وعائلة الأعمدة باستخدام لغة استغلام كاساندرا CQL 3.0:
```mysql
CREATE KEYSPACE MyKeySpace
  WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 3 };

USE MyKeySpace;

CREATE COLUMNFAMILY MyColumns (id text, lastName text, firstName text, PRIMARY KEY(id));

INSERT INTO MyColumns (id, lastName, firstName) VALUES ('1', 'Doe', 'John');

SELECT * FROM MyColumns;
```
والتي ينتج عنها:
```text
id | lastName | firstName
----+----------+----------
  1 | Doe      | John

(1 rows)
```


## البنية الموزعة

### بروتوكول تبادل المعلومات
يستخدم أباتشي كاساندرا بروتوكول تبادل المعلومات من ند إلى ند لاتصالات المجموعة. تتبادل العقد بشكل روتيني معلومات حول حالة المجموعة، بما في ذلك:

* حالة توفر العقدة
* إصدارات المخطط
* طوابع زمنية للإنشاء (وقت تشغيل العقدة)
* أرقام الإصدارات (قيم الساعة المنطقية)

يستخدم النظام ساعات متجهة لتتبع تداول المعلومات وتجاهل بيانات الحالة القديمة.

### العقد الأساسية
تُحدد البنية عقدًا معينة كعقد أساسية، والتي تقوم بما يلي:

* تشغل المجموعة
* تعمل كنقاط اتصال تبادل معلومات مضمونة
* تمنع تجزئة المجموعة
* تبقى قابلة للاكتشاف باستخدام أساليب اكتشاف الخدمة

يُزيل هذا التصميم نقاط الفشل الفردية مع الحفاظ على اتساق المعرفة التشغيلية على مستوى المجموعة.

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

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

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

## الإصدارات
يوضح الجدول التالي قائمة الإصدارات التي طُرحت حتى الآن من نظام أباتشي كاساندرا:

## مراجع

 

تصنيف:أكواد مفتوحة المصدر
تصنيف:برمجيات 2008
تصنيف:برمجيات تستخدم رخصة أباتشي
تصنيف:برمجيات حرة بلغة جافا
تصنيف:برمجيات فيسبوك
تصنيف:برمجيات نظم حرة
تصنيف:تخزين البيانات
تصنيف:حوسبة سحابية
تصنيف:قواعد بيانات
تصنيف:قواعد بيانات غير علائقية
تصنيف:مؤسسة برمجيات أباتشي
تصنيف:نظم إدارة قواعد بيانات مفتوحة المصدر