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

هذه المقالة يتيمة. ساعد بإضافة وصلة إليها في مقالة متعلقة بها
يرجى إضافة وصلات داخلية للمقالات المتعلّقة بموضوع المقالة.
يرجى مراجعة هذه المقالة وإزالة وسم المقالات غير المراجعة، ووسمها بوسوم الصيانة المناسبة.
من ويكيبيديا، الموسوعة الحرة

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

التخفيف[عدل]

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

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

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

أنظر أيضا[عدل]

مراجع[عدل]

  1. ^ "Thundering Herd Problem". The Jargon File (version 4.4.7). مؤرشف من الأصل في 2022-11-26. اطلع عليه بتاريخ 2019-07-09.

روابط خارجية[عدل]