ما مقدار المشاكل التي يمكن أن يسببها القليل من الرموز التعبيرية؟ لن تفكر في ذلك. يأتي هذا الرمز التعبيري من الحلقة العشرين من الموسم التاسع من المسلسل التلفزيوني الأمريكي الكلاسيكي "الأصدقاء" (المعروف أيضًا باسم "ستة"). سمعت راشيل، التي لعبت دورها جنيفر أنيستون، أن حفلًا لمسلسل تلفزيوني سيقام على السطح، فهتفت على الفور. يبلغ حجمه 1.6 ميغابايت فقط وقد تم استخدامه 246,173 مرة على منصة اجتماعية تسمى Discourse لأنها تحظى بشعبية كبيرة بين مستخدمي الإنترنت.
في كل مرة يتم استخدامها، سيتم نسخها احتياطيًا بشكل متكرر، مما يؤدي في النهاية إلى تكوين 377 جيجابايت من النسخ الاحتياطية الزائدة وأكثر من 240.000 رابط ثابت، مما يخترق بشكل مباشر الحد الأقصى لسعة نظام ملفات Linux ويتسبب في فشل آلية النسخ الاحتياطي.

كمشروع برمجي مفتوح المصدر، يوفر Discourse الدعم الفني لأكثر من 22000 مجتمع عبر الإنترنت. تدعم وظيفة الدردشة في الوقت الفعلي إدراج الرموز التعبيرية والرسوم المتحركة بتنسيق GIF.
ومع ذلك، فإنه يحتوي على آلية خاصة "للتحميل الآمن":عند نقل ملف بين سيناريوهات أمان مختلفة، مثل إعادة التوجيه من رسالة خاصة إلى منشور عام، يقوم النظام بإنشاء نسخة جديدة بقيمة تشفير SHA1 عشوائية. على الرغم من أن الملف لم يتغير على الإطلاق، إلا أن Discourse سيعامله كملف جديد.
لذلك، إذا تم نشر صورة أو رمز تعبيري شائع بشكل مستمر في المنشورات وإعادة التوجيه والرسائل الخاصة، فسيتم إنشاء نسخة جديدة في كل مرة.

في الواقع، كان موقع Discourse مدركًا منذ فترة طويلة لمشكلة الإرهاق بالملفات المكررة. كان الحل الأولي هو تتبع الملفات الأصلية من خلال قيم تجزئة الملف. عند النسخ الاحتياطي، يتم تجميع الملفات التي تم تحميلها حسب قيم التجزئة. يتم تنزيل الملف الأول فقط في كل مجموعة، ويتم إنشاء روابط ثابتة للملفات المكررة.
يبدو جيدًا وأنيقًا، لكن نظام Discourse Linux يستخدم الأكثر شيوعًا والأقدميدعم نظام الملفات ext4 ملفًا واحدًا بحد أقصى 16 تيرابايت ونظام ملفات 1EB، لكن كل ملف يسمح فقط بحد أقصى 65000 رابط ثابت.
لذلك، لا يمكن لحل Discourse تنزيل أكثر من 240.000 ملف مكرر مرة واحدة فقط. وبعد الوصول إلى الحد الأعلى، بالإضافة إلى التنزيل الأول، أجرى النظام أيضًا ما يقرب من 181000 تنزيلًا احتياطيًا إضافيًا.
وهذا يعني،ما يعطل النظام ليس ملفات النسخ الاحتياطي الضخمة، بل العدد الهائل من الروابط الثابتة.

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

وأخيرا، الخطاب مازحا أيضا،الآن نعلم أن جينيفر أنيستون يمكنها أيضًا اختبار ضغط الخادم.
