تخطَّ إلى المحتوى
عبــقر

هندسة

لماذا تتوقف الوكلاء عند الخطوة التاسعة

عبر 40,000 تشغيلة، لم يكن السبب النموذج تقريبًا أبدًا. كان أداةً صمتت ولا شيء انتبه.

Rania Fahmy · الهندسة7 دقائق قراءة

شكل الإخفاق

سحبنا كل تشغيلة مخفقة في ربع واحد ورتّبناها حسب رقم الخطوة التي توقفت عندها. لم يكن التوزيع مسطّحًا. تجمّعت الإخفاقات في النصف الأخير من الخرائط الأطول، وكان السبب الأشيع نداء أداة لم ينجح ولم يُرجع خطأ — بل استغرق ببساطة وقتًا أطول مما فكّر أحد في تحديده.

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

المهلة ليست سياسة إعادة محاولة

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

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

ما الذي غيّرناه

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

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