الذاكرة المستمرة
في علم الحاسوب ، تُعرف الذاكرة المستمرة بأنها أي طريقة أو جهاز لتخزين هياكل البيانات بكفاءة بحيث يمكن الاستمرار في الوصول إليها باستخدام تعليمات الذاكرة أو واجهات برمجة تطبيقات الذاكرة حتى بعد انتهاء العملية التي أنشأتها أو عدّلتها آخر مرة. [ 1 ]
غالباً ما يُخلط بين الذاكرة الدائمة وذاكرة الوصول العشوائي غير المتطايرة (NVRAM)، إلا أن الذاكرة الدائمة ترتبط ارتباطاً وثيقاً بمفهوم الاستمرارية ، إذ تُركز على حالة البرنامج الموجودة خارج نطاق الخلل الخاص بالعملية التي أنشأتها. (العملية هي برنامج قيد التنفيذ. ونطاق الخلل الخاص بالعملية هو ذلك الجزء من حالة البرنامج الذي قد يتعرض للتلف نتيجة استمرار العملية في التنفيذ بعد حدوث خلل، على سبيل المثال بسبب مكون غير موثوق به في الحاسوب الذي يُنفذ البرنامج).
يُعدّ الوصول الفعال، الشبيه بالذاكرة، السمة المميزة للذاكرة الدائمة. [ 2 ] ويمكن توفيره باستخدام تعليمات ذاكرة المعالج الدقيق ، مثل التحميل والتخزين. كما يمكن توفيره باستخدام واجهات برمجة التطبيقات (APIs) التي تُنفّذ عمليات الوصول المباشر للذاكرة عن بُعد (RDMA)، مثل القراءة والكتابة. وتُعتبر الطرق الأخرى منخفضة زمن الوصول ، التي تسمح بالوصول إلى البيانات على مستوى البايت، مؤهلة أيضاً.
تتجاوز إمكانيات الذاكرة الدائمة مجرد عدم تقلب البتات المخزنة. فعلى سبيل المثال، قد يؤدي فقدان البيانات الوصفية الأساسية، مثل إدخالات جدول الصفحات أو غيرها من البنى التي تترجم العناوين الافتراضية إلى عناوين فعلية، إلى فقدان البتات الدائمة. ومن هذا المنطلق، تشبه الذاكرة الدائمة أشكالًا أكثر تجريدًا لتخزين البيانات في الحاسوب، مثل أنظمة الملفات . في الواقع، تُطبّق جميع تقنيات الذاكرة الدائمة الحالية تقريبًا نظام ملفات أساسيًا على الأقل، يُمكن استخدامه لربط الأسماء أو المعرّفات بالوحدات المخزنة، كما تُوفّر، كحد أدنى، طرقًا لنظام الملفات تُستخدم لتسمية هذه الوحدات وتخصيصها.
مشكلة قراءة الكتابة غير المستمرة
تُلاحظ مشكلة قراءة البيانات غير المُخزّنة في الذاكرة الدائمة في البرامج التي لا تستخدم الأقفال. ولأن عمليات المقارنة والتبديل (CAS) لا تُخزّن القيم المكتوبة في الذاكرة الدائمة، فقد يُصبح بروتوكول تماسك الذاكرة المؤقتة البيانات المُعدّلة مرئيةً للمُراقب المُتزامن قبل أن يتمكن مُراقب الأعطال من مُلاحظتها في الذاكرة الدائمة. في حال انقطاع التيار الكهربائي مباشرةً بعد أن تُصبح عملية الكتابة مرئيةً ولكن ليس مُخزّنةً بعد، فقد تحدث مشكلة قراءة البيانات غير المُخزّنة، أي أن متغير البيانات الذي تم تعديله بواسطة عملية المقارنة والتبديل قد يُصبح مرئيًا للمُراقب المُتزامن قبل مُراقب الأعطال، مما قد يُسبب تناقضات في حالة حدوث أعطال.
لتوضيح المشكلة: في قائمة مرتبطة أحادية الاتجاه وخالية من الأقفال، يمكن إدراج عقدة بواسطة خيط المنتج A بعد العقدة الرئيسية ، حيث يتم تبديل المؤشر التالي للعقدة الرئيسية بشكل ذري (CAS) ليشير إلى العقدة الجديدة A ، إلا أن هذا التبديل لا يُحفظ. بعد ذلك، يُدرج خيط المنتج B عقدة أخرى بعد العقدة A ، حيث أن التبديل الذري للعقدة A مرئي بالفعل لجميع الخيوط المتزامنة. يقوم التبديل الذري بتبديل المؤشر التالي للعقدة A ليشير إلى العقدة B ، ويُحفظ هذا التبديل. في حال انقطاع التيار الكهربائي عند هذه النقطة، سيُترك التطبيق الذي يستخدم القائمة المرتبطة في حالة غير متناسقة، حيث ستُفقد كل من العقدة A والعقدة B ، لأن المؤشر التالي من العقدة الرئيسية إلى العقدة A لم يُحفظ. ولأن العقدة B قد نُشرت ولكن لا يمكن الوصول إليها بعد إعادة التشغيل، ولأن بيانات أخرى قد تكون محفوظة يتم الوصول إليها من خلال العقدة B أو تعتمد عليها ، فلن يكون الوصول اللاحق إلى هذه البيانات ممكنًا، مما يؤدي إلى فقدان البيانات. [ 3 ]
لا تقتصر مشكلة قراءة البيانات غير المكتوبة بشكل دائم على القوائم المرتبطة غير المقفلة، بل يمكن إيجادها في أي بنية بيانات غير مقفلة حيث توجد فجوة محتملة بين الرؤية المتزامنة والرؤية الدائمة. على سبيل المثال، يمكن أن تحدث مشكلة مماثلة مع المخازن المؤقتة الدائرية الدائمة . [ 4 ]
انظر أيضاً
- نوفا (نظام الملفات) أو "الذاكرة غير المتطايرة المُسرّعة"، وهو نظام ملفات مفتوح المصدر ذو بنية سجلية للذاكرة الدائمة القابلة للعنونة بالبايت
- البيانات الدائمة ، وهي معلومات لا يتم الوصول إليها بشكل متكرر ومن غير المرجح تعديلها
- هياكل البيانات المستمرة ، وهي هياكل بيانات تحتفظ دائمًا بالإصدار السابق من نفسها عند تعديلها (غير قابلة للتغيير فعليًا).
- نظام التشغيل فانتوم ، نظام تشغيل مستمر
مراجع
- ↑ ساتيش م. ثات. 1986. الذاكرة الدائمة: بنية تخزين لأنظمة قواعد البيانات الموجهة للكائنات. في وقائع ورشة العمل الدولية لعام 1986 حول أنظمة قواعد البيانات الموجهة للكائنات (OODS '86). مطبعة جمعية مهندسي الكهرباء والإلكترونيات، لوس ألاميتوس، كاليفورنيا، الولايات المتحدة الأمريكية، 148-159.
- ↑ ب. ميهرا وس. فاينبيرغ، "الاستمرارية السريعة والمرنة: الحل الأمثل لتحمل الأعطال وقابلية التوسع والأداء في مخازن البيانات عبر الإنترنت"، المؤتمر الدولي الثامن عشر للمعالجة المتوازية والموزعة، 2004. وقائع المؤتمر، سانتا فيه، نيو مكسيكو، الولايات المتحدة الأمريكية، 2004، ص 206 وما بعدها. doi: 10.1109/IPDPS.2004.1303232
- ↑ وانغ، ويليام؛ ديستلهورست، ستيفان (17 يونيو 2019). "الذرات المستمرة لتنفيذ هياكل بيانات متينة وخالية من الأقفال للذاكرة غير المتطايرة (إعلان موجز)" . المؤتمر الحادي والثلاثون لجمعية آلات الحوسبة حول التوازي في الخوارزميات والهياكل . جمعية آلات الحوسبة. الصفحات 309-311 . doi : 10.1145/3323165.3323166 . ISBN 9781450361842. S2CID 195064876 – عبر مكتبة ACM الرقمية.
- ↑ وولكزكو، ماريو (26 أبريل 2019). "الذاكرة غير المتطايرة وجافا: الجزء 2" . ميديوم .
روابط خارجية
- برمجة الذاكرة المستمرة ، وهي مجموعة من الموارد المتعلقة ببرمجة الذاكرة المستمرة.
- الحاويات والبيانات الدائمة ، LWN.net ، 28 مايو 2015، بقلم جوش بيركوس
- تحديث ذاكرة الوصول العشوائي الديناميكية غير المتزامن (ADR) ، SNIA ، يناير 2014 (ينطبق على ذاكرة الوصول العشوائي الديناميكية أيضًا)
- تويزلر: نظام تشغيل لتسلسلات الذاكرة من الجيل التالي ، تقرير فني من جامعة كاليفورنيا، سانتا كروز UCSC-SSRC-17-01، 5 ديسمبر 2017، بقلم دانيال بيتمان، ومات برايسون، ويوانجيانغ ني، وأرجون جوفيندجي، وإسحاق تشيرداك، وبانكاج مهرا، وداريل دي لونغ، وإيثان إل ميلر
- أنظمة ملفات الحاسوب
- أطر عمل الاستمرارية
