التكرار المتفائل

النسخ المتفائل ، المعروف أيضًا باسم النسخ الكسول ، [ 1 ] [ 2 ] هو استراتيجية للنسخ ، حيث يُسمح للنسخ بالتباعد. [ 3 ]

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

الخوارزميات

تتكون خوارزمية النسخ المتفائلة من خمسة عناصر:

  1. تقديم العمليات : يقوم المستخدمون بتقديم العمليات في مواقع مستقلة.
  2. الانتشار : يشارك كل موقع العمليات التي يعرفها مع بقية النظام.
  3. الجدولة : يحدد كل موقع ترتيب العمليات التي يعرفها.
  4. حل النزاعات : إذا كانت هناك أي تعارضات بين العمليات التي حددها الموقع، فيجب تعديلها بطريقة ما.
  5. الالتزام : تتفق المواقع على جدول زمني نهائي ونتيجة لحل النزاع، وتصبح العمليات دائمة.

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

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

أمثلة

من الأمثلة المعروفة على الأنظمة القائمة على النسخ المتفائل نظام التحكم في الإصدارات CVS ، أو أي نظام تحكم آخر يستخدم نموذج النسخ والتعديل والدمج . يغطي CVS جميع العناصر الخمسة التالية:

  1. إرسال العملية: يقوم المستخدمون بتحرير النسخ المحلية من الملفات.
  2. الانتشار: يقوم المستخدمون بسحب التحديثات يدويًا من خادم مركزي، أو يدفعون التغييرات بمجرد أن يشعر المستخدم بأنه مستعد.
  3. الجدولة: تتم جدولة العمليات بالترتيب الذي يتم استلامها به من قبل الخادم المركزي.
  4. حل التعارضات: عندما يقوم المستخدم بالدفع إلى المستودع المركزي أو السحب منه، سيتم وضع علامة على أي تعارضات ليقوم هذا المستخدم بإصلاحها يدويًا.
  5. الالتزام: بمجرد أن يقبل الخادم المركزي التغييرات التي يقوم المستخدم بدفعها، يتم الالتزام بها بشكل دائم.

يُعدّ التزامن حالة خاصة من النسخ ، حيث يوجد نسختان فقط. على سبيل المثال، تسمح أجهزة المساعد الرقمي الشخصي (PDAs) للمستخدمين بتعديل البيانات إما على الجهاز نفسه أو على جهاز كمبيوتر، ثم دمج مجموعتي البيانات هاتين. مع ذلك، تجدر الإشارة إلى أن النسخ يُمثّل مشكلة أوسع نطاقًا من التزامن، إذ قد يوجد أكثر من نسختين.

ومن الأمثلة الأخرى ما يلي:

تداعيات

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

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

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

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

مراجع

  1. لادين، ر.؛ ليسكوف، ب.؛ شريرا، ل.؛ غيماوات، س. (1992). "توفير توافر عالٍ باستخدام النسخ المتماثل الكسول". معاملات ACM لأنظمة الحاسوب . 10 (4): 360-391 . CiteSeerX 10.1.1.586.7749 . doi : 10.1145/138873.138877 . S2CID 2219840 .  
  2. لادين، ر.؛ ليسكوف، ب.؛ شريرا، ل. (1990). النسخ الكسول: استغلال دلالات الخدمات الموزعة . وقائع الندوة السنوية التاسعة لجمعية الحوسبة الآلية حول مبادئ الحوسبة الموزعة . الصفحات 43-57 . doi : 10.1145/93385.93399 . hdl : 1721.1/149694 . 
  3. سايتو، ياسوشي؛ شابيرو، مارك (2005). "التكرار التفاؤلي". مجلة ACM Computing Surveys . 37 (1): 42–81 . CiteSeerX 10.1.1.324.3599 . doi : 10.1145/1057977.1057980 . S2CID 1503367 .  
  4. غراي، ج .؛ هيلاند، ب.؛ أونيل، بشاشا، د. (1996). مخاطر التكرار وحلها (ملف PDF) . وقائع مؤتمر ACM SIGMOD الدولي لإدارة البيانات لعام 1996. الصفحات 173-182 . doi : 10.1145/233269.233330 . 
  5. تيري، د.ب.؛ ثايمر، م.م.؛ بيترسن، ك.؛ ديمرز، أ.ج.؛ سبريتزر، م.ج.؛ هاوزر، س.هـ. (1995). إدارة تعارضات التحديث في بايو، وهو نظام تخزين مكرر ضعيف الاتصال . وقائع الندوة الخامسة عشرة لجمعية الحوسبة الآلية حول مبادئ أنظمة التشغيل. الصفحات 172-182 . doi : 10.1145/224056.224070 . 
  6. كيرماريك، أ.م.؛ روسترون، أ.؛ شابيرو، م.؛ دروشيل، ب. (2001). منهج آيس كيوب لتوفيق النسخ المتباينة . وقائع الندوة السنوية العشرين لجمعية الحوسبة الآلية حول مبادئ الحوسبة الموزعة . الصفحات 210-218 . doi : 10.1145/383962.384020 .