مشكلة القطيع المندفع

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

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

بالمثل في Microsoft Windows، يمكن لمنافذ إكمال الإدخال/الإخراج (I/O completion ports) التخفيف من مشكلة القطيع المندفع، حيث يمكن تكوينها بحيث يتم إيقاظ خيط واحد فقط من الخيوط التي تنتظر على منفذ الإكمال عندما يحدث حدث ما.

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

 أنظر أيضا 

 إدارة العمليات (الحوسبة)
 قفل القافلة
 مشكلة الحلاقة أثناء النوم
 مزامنة TCP العالمية
 تدافع مخبأ

 مراجع 

 روابط خارجية 

 مناقشة هذه الملاحظة على لينكس
 إعادة المحاولة بشكل أفضل مع التراجع الأسي والارتعاش

تصنيف:خوارزميات