# قاعدة بيانات داخل الذاكرة

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

## دعم أسيد (ACID)

في أبسط أشكالها، تقوم قواعد بيانات الذاكرة الرئيسية بتخزين البيانات على أجهزة الذاكرة المتبخرة. تفقد هذه الأجهزة جميع المعلومات المخزنة عندما يفقد الجهاز الطاقة أو تتم إعادة تعيينه. في هذه الحالة، يمكن القول أن قواعد بيانات داخل الذاكرة IMDBs تفتقر إلى دعم جزء «المتانة» من خصائص ACID (الذرية، الاتساق، العزلة، المتانة). يمكن أن تدعم قواعد البيانات داخل الذاكرة IMDBs المستندة إلى الذاكرة المتبخرة، وغالباً ما تفعل ذلك، خصائص ACID الثلاثة الأخرى الذرية والاتساق والعزلة.
أضافت العديد من قواعد البيانات داخل الذاكرة IMDB المتانة عبر الآليات التالية:
* ملفات اللقطات Snapshot، أو صور نقاط التحقق checkpoint، التي تسجل حالة قاعدة البيانات في لحظة معينة من الزمن. يقوم النظام عادةً بإنشاء هذه بشكل دوري، أو على الأقل عندما يقوم IMDB بإيقاف تشغيل متحكم به. في حين أنها تعطي قياسًا للثبات على البيانات (من حيث أن قاعدة البيانات لا تفقد كل شيء في حالة تعطل النظام)، فإنها تقدم فقط متانة جزئية (حيث ستفقد التغييرات «الأخيرة»). من أجل المتانة الكاملة، يحتاجون إلى المكمل بأحد الإجراءات التالية:
* تسجيل المعاملات Transaction logging، الذي يسجل التغييرات في قاعدة البيانات في ملف دفتر اليومية ويسهل الاسترداد التلقائي لقاعدة بيانات داخل الذاكرة.
* ذاكرة DIMM غير المتبخرة (NVDIMM)، وهي وحدة ذاكرة تحتوي على واجهة DRAM ، وغالبًا ما يتم دمجها مع NAND flash لأمان البيانات غير المتطايرة. وقد صممت هذه الحلول NVDIMM الأولى مع المكثفات الفائقة بدلا من البطاريات لمصدر طاقة احتياطية. مع هذا التخزين، يمكن استئناف IMDB بأمان من حالته عند إعادة التشغيل.
* ذاكرة الوصول العشوائي غير المتبخرة (NVRAM)، عادة في شكل ذاكرة وصول عشوائي ثابتة مدعومة بالطاقة البطارية (ذاكرة الوصول العشوائي بالبطارية)، أو ذاكرة ROM قابلة للمسح كهربائياً (EEPROM). مع هذا التخزين، يمكن لنظام إعادة تشغيل IMDB استعادة مخزن البيانات من حالته المتسقة الأخيرة.
* تطبيقات عالية التوافر تعتمد على النسخ المتماثل replication لقاعدة البيانات، مع تجاوز الفشل التلقائي لقاعدة بيانات متطابقة في حالة فشل قاعدة البيانات الأساسية. للحماية من ضياع البيانات في حالة تعطل النظام بالكامل، يتم عادةً استخدام نسخ متماثل لـ IMDB بالإضافة إلى واحدة أو أكثر من الآليات المذكورة أعلاه.
تسمح بعض IMDB لمخطط قاعدة البيانات بتحديد متطلبات المتانة المختلفة لمناطق محددة من قاعدة البيانات - وبالتالي، فإن البيانات المتغيرة بشكل أسرع والتي يمكن إعادة إنشائها بسهولة أو التي ليس لها معنى بعد إغلاق النظام لن تحتاج إلى تسجيلها من أجل المتانة (على الرغم من يجب أن يتم نسخها من أجل إتاحة عالية)، في حين سيتم وضع علامة على معلومات التكوينconfiguration على أنها تحتاج إلى الحفظ.

## الهجينة (Hybrids) مع قواعد بيانات على القرص

على الرغم من أن تخزين البيانات في الذاكرة يمنح مزايا الأداء، إلا أنها طريقة مكلفة لتخزين البيانات. تتمثل إحدى طرق تحقيق فوائد التخزين في الذاكرة مع الحد من تكاليفها في تخزين أكثر البيانات التي يتم الوصول إليها في الذاكرة والباقي على القرص. نظرًا لعدم وجود تمييز صارم بين البيانات التي يجب تخزينها في الذاكرة والبيانات التي يجب تخزينها على القرص، يتم تحديث بعض الأنظمة ديناميكيًا حيث يتم تخزين البيانات بناءً على استخدام البيانات. هذا النهج هو مختلف بمهارة من التخزين المؤقت caching، والتي تم تخزينها مؤقتاً البيانات الأكثر الوصول إليها مؤخراً، على عكس معظم البيانات الوصول إليها بشكل متكرر يجري تخزينها في الذاكرة.
تسمح مرونة النهج الهجينة بتحقيق التوازن بين:
* الأداء (الذي يتم تحسينه عن طريق فرز البيانات المحددة وتخزينها واسترجاعها بالكامل في الذاكرة، بدلاً من الانتقال إلى القرص)
* التكلفة، لأنه يمكن استبدال قرص صلب أقل تكلفة لمزيد من الذاكرة
* إصرار
* عامل الشكل، لأن رقائق ذاكرة الوصول العشوائي لا يمكنها الاقتراب من كثافة القرص الصلب الصغير
في صناعة الحوسبة السحابية ، ظهر مصطلح «درجة حرارة البيانات» أو «البيانات الساخنة» و «البيانات الباردة» لوصف كيفية تخزين البيانات في هذا الصدد. يتم استخدام البيانات الساخنة لوصف البيانات المهمة للمهمة التي يجب الوصول إليها بشكل متكرر بينما تصف البيانات الباردة البيانات المطلوبة بشكل أقل تكرارًا وأقل إلحاحًا، مثل البيانات المحفوظة لأغراض الأرشفة أو التدقيق. يجب تخزين البيانات الساخنة بطرق تقدم استرجاعًا وتعديلًا سريعًا، غالبًا ما يتم ذلك عن طريق التخزين داخل الذاكرة ولكن ليس دائمًا. من ناحية أخرى، يمكن تخزين البيانات الباردة بطريقة أكثر فعالية من حيث التكلفة ومن المقبول أن الوصول إلى البيانات سيكون أبطأ مقارنة بالبيانات الساخنة. في حين أن هذه الأوصاف مفيدة، إلا أنه لا يوجد تعريف محدد لكلمة «حار» و «بارد».
توفر كفاءة التصنيع سببًا آخر لاختيار نظام قاعدة بيانات مدمج في الذاكرة / على القرص. تتضمن بعض خطوط منتجات الجهاز، وخاصة في الإلكترونيات الاستهلاكية، بعض الوحدات ذات التخزين الدائم، والبعض الآخر يعتمد على الذاكرة للتخزين (أجهزة فك التشفير set-top boxes، على سبيل المثال). إذا كانت مثل هذه الأجهزة تتطلب نظام قاعدة بيانات، يمكن للشركة المصنعة اعتماد نظام قاعدة بيانات مختلط بتكلفة أقل وأعلى ، وبتخصيص أقل للرمز، بدلاً من استخدام قواعد بيانات منفصلة في الذاكرة وعلى القرص، على التوالي، لقرصها الأقل والمنتجات القائمة على القرص.
تم إصدار أول محرك قاعدة بيانات يدعم كلاً من الجداول الموجودة في الذاكرة وعلى القرص في قاعدة بيانات واحدة، WebDNA ، في عام 1995.

## ذاكرة التخزين

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