فهم السيمافور في ServiceNow
نُشر في ٢٠ أغسطس ٢٠٢١ · 1 دقائق قراءة
كثيراً ما يتبادر اسم السيمافور إلى الذهن عند مواجهة مشكلة أداء في ServiceNow. لكن السيمافور في الواقع أشمل من ذلك بكثير.
ما هو السيمافور؟
وفقاً لتوثيق ServiceNow وJVM، يقوم السيمافور بإدارة موارد ServiceNow وحمايتها، وتحديد عدد الأنشطة المسموح بها لمورد معين. يُحقق ذلك من خلال التحكم في طوابير المعاملات بأسلوب الأول في الدخول هو الأول في الخروج (FIFO).
كيف يعمل — مثال توضيحي
تخيّل أن ServiceNow تسمح بـ خيطين (threads) و10 فتحات سيمافور لمورد معين. ماذا يعني هذا فعلياً؟
يعني أن ServiceNow ستُشغّل معاملتين في آنٍ واحد. فماذا يحدث إذا وصلت 6 معاملات في الوقت ذاته؟
- تُشغَّل معاملتان فوراً.
- يضع السيمافور المعاملات الأربع المتبقية في الطابور وينتظر.
قد يكون بطء الأداء نتيجة لانتظار المعاملات في الطابور — لكن هذا ضروري لحماية الموارد ومنع تحميل النظام بشكل مفرط.
ماذا لو وصلت 15 معاملة دفعة واحدة؟
في هذه الحالة:
- تُشغَّل معاملتان فوراً.
- يضع السيمافور 10 معاملات في الطابور.
- تُرفض المعاملات الـ 3 المتبقية.
الخلاصة
السيمافور هو حارس بوابة منصتك. يتحكم في طابور المعاملات وينظّمه لحماية الموارد من الإرهاق. فهم هذه الآلية يساعدك على التفكير في الأداء بشكل استباقي لا تفاعلي — وتصميم حلول تحترم حدود المنصة.