منتج الهالوين

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

اكتشف دون تشامبرلين وبات سيلينجر ومورتون أستراهان احتمالية حدوث هذا الخطأ في قاعدة البيانات لأول مرة في منتصف سبعينيات القرن الماضي، وتحديدًا في يوم الهالوين ، أثناء عملهم على تحسين الاستعلامات . [ 1 ] كتبوا استعلام SQL يهدف إلى منح زيادة بنسبة 10% لكل موظف يتقاضى راتبًا أقل من 25,000 دولار. كان من المفترض أن يُنفذ هذا الاستعلام بنجاح ودون أخطاء، ولكن عند الانتهاء، كان جميع الموظفين في قاعدة البيانات يتقاضون 25,000 دولار على الأقل، لأنه استمر في منحهم الزيادة حتى وصلوا إلى هذا المستوى. كان من المتوقع أن يتكرر الاستعلام على كل سجل من سجلات الموظفين الذين يتقاضون رواتب أقل من 25,000 دولار مرة واحدة فقط. في الواقع، ولأن السجلات المُحدثة كانت مرئية لمحرك تنفيذ الاستعلام، وبالتالي استمرت في مطابقة معايير الاستعلام، فقد تطابقت سجلات الرواتب عدة مرات، وفي كل مرة مُنحت زيادة بنسبة 10% حتى تجاوزت جميعها 25,000 دولار.

خلافًا لما يعتقده البعض، فإن الاسم لا يصف طبيعة المشكلة، بل أُطلق عليها نسبةً إلى يوم اكتشافها. [ 1 ] كما رواه دون تشامبرلين: [ 2 ]

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

مراجع

  1. 1 2 فرانا، فيليب (أبريل–يونيو 2002). "استعلام حسن النية ومشكلة الهالوين". حوليات IEEE لتاريخ الحوسبة . 24 (2): 86–89 . doi : 10.1109/MAHC.2002.1010071 . ISSN 1058-6180 . 
  2. تشامبرلين، د.د. (2001-10-03). "مقابلة تاريخية شفهية مع دونالد د. تشامبرلين" . hdl : 11299/107215 . تاريخ الاسترجاع: 2022-05-06 .