קבץ GIF של ריי-צ'ל מ"החברים" גדל למאות גיגה-בייטים, שברר את העותקים המגנים של דיסקורס

קבץ GIF של ריי-צ'ל מ"החברים" גדל למאות גיגה-בייטים, שברר את העותקים המגנים של דיסקורס

2 hardware

הקצר

דיסקורס – פלטפורמה פופולרית לדיונים מקוונים, בה כיום יש יותר מ־22 000 קהילות.

לאחר גיבוי של האתר נוצר בעיה קריטית: קובץ GIF (1.6 מ״ב) הועתק על ידי המשתמשים 246 173 פעמים, מה שגרם לעבור את מגבלת הקישורים החזקים במערכת הקבצים ext4 והוביל לגדילת גודל הגיבוי ל‑377 ג״ב.

להלן ניתוח מפורט של המצב, הסיבות ופתרונותיו.

1. מה קרה?
קובץ GIF “ריצ'ל מ־Friends”, 1.6 מ״ב – 246 173 עותקים (קישורים חזקים) > מגבלת ext4 ~65 000 קישורים ל‑inode → גודל הגיבוי הסופי 377 ג״ב

למה זה קרה?
דיסקורס מאפשר להוסיף אימוג'ים וקבצי GIF לכל הודעה. כאשר הקובץ מועבר ממקום אחד למקום אחר (לדוגמה, משיחה פרטית לפוסט ציבורי) המערכת יוצרת עותק חדש עם SHA‑1 אקראי. כלומר, גם אם התוכן זהה, דיסקורס רואה אותו כאובייקט חדש.

כך קובץ GIF יחיד יכול להופיע במאות אלפי הודעות ושיחות פרטיות – בכל פעם נוצר קובץ נפרד. בסופו של דבר 246 173 עותקים חרגו את מגבלת ext4, והמערכת החלה ליצור קבצים חדשים במקום קישורים חזקים, מה שגרם ל־“איבוד” של 181 000 גיבויים.

2. הפתרון הראשון – איסוף לפי SHA‑1
דיסקורס ניסתה לפתור את הבעיה על ידי קבוצת העלאות לפי SHA‑1:

1. בזמן הגיבוי כל הקבצים נאספו לקבוצות עם אותו hash.
2. רק העותק הראשון מכל קבוצה נטען.
3. עבור שאר העותקים נוצרו קישורים חזקים.

הדבר נראה אלגנטי – אבל לא התחשב במגבלת ext4 על מספר הקישורים. ברגע שהמגבלה הושגה, המערכת יצרה אוטומטית קבצים חדשים במקום קישורים, והגודל של הגיבוי גבר חדירה.

3. פתרון חדש – “מעבר” בעת שגיאת EMLINK
דיסקורס פיתחה אסטרטגיה גמישה יותר:

1. נוצר קישור חזק לקובץ כרגיל.
2. אם מערכת הקבצים מחזירה שגיאת EMLINK (הגבול של קישורים עובר), העותק הבא הופך ל־“מקור” חדש.
3. מאז, קישורים חדשים נוצרים שוב אל הגרסה החדשה הזו.

כך בכל פעם שמוגבלת מגבלה מתרחשת המערכת עוברת לקובץ “אב” חדש וממשיכה לפעול ללא שגיאות. הפתרון תואם לכל מערכת קבצים ואינו דורש התאמה נוספת.

4. מסקנות
- GIF פופולרי (ריקוד ריצ'ל מ־Friends) גרם לגדילת גיבוי ל‑377 ג״ב.
- מגבלת ext4 של ~65 000 קישורים חזקים הייתה גורם קריטי.
- הפתרון הראשון עם איסוף לפי SHA‑1 לא התחשב במגבלות מערכת הקבצים והוביל לאובדן נתונים.
- האסטרטגיה החדשה “מעבר” בעת שגיאת EMLINK מאפשרת ניהול תקין של כמות גדולה של עותקים ושמירה על יעילות הגיבוי.

> *“כעת אנו יודעים ש‑Jennifer Aniston יכולה לבצע בדיקות עומק של התשתית,”* — ציינה דיסקורס בבלוג שלה באי-ומור.

תגובות (0)

שתפו את דעתכם — אנא היו מנומסים והישארו בנושא.

אין תגובות עדיין. השאירו תגובה ושתפו את דעתכם!

כדי להשאיר תגובה, אנא התחברו.

התחברו כדי להגיב