Caching ו-CDN
בשיעור הזה נלמד על cache (זיכרון מטמון — מקום מהיר שבו שומרים תשובות שכבר חישבנו, כדי לא לחשב אותן שוב; כמו פתק על השולחן עם תשובה שכבר מצאת). נכיר כמה דרכי עבודה: cache-aside (קוראים מהמטמון, ואם אין שם — הולכים למקור ושומרים לפעם הבאה), write-through (כל כתיבה נשמרת גם במטמון וגם במקור באותו רגע),
System Design (תכנון מערכות — איך בונים תוכנה גדולה שמשרתת הרבה אנשים) הוא כמו לתכנן עיר: כבישים, מחסנים, רמזורים וצוותי תחזוקה — כך שהעיר תמשיך לעבוד טוב גם בשעות העומס הכי גדולות.
- Caching
- שמירת תשובות מוכנות במקום מהיר (cache — זיכרון מטמון) כדי לענות מהר ולא לעבוד פעמיים. המיומנות המרכזית של השיעור כוללת cache-aside (קוראים מהמטמון, ואם אין — הולכים למקור ושומרים), write-through (שומרים גם במטמון וגם במקור יחד), TTL (כמה זמן תשובה נשארת "טרייה"), invalidation (פסילת מידע ישן), hot keys (פריטים שכולם מבקשים יחד) ו-CDN (שרתים פזורים בעולם ששומרים עותקים קרובים למשתמש).
- Trade-off
- בחירה מודעת שיש בה גם רווח וגם מחיר — בדיוק כמו לבחור מסלול בכביש: המהיר עולה כסף באגרה, החינמי לוקח יותר זמן. בראיון מסבירים למראיין/ת מה הרווח ומה המחיר של כל בחירה.
- מדד תפעולי
- מספר שמראה אם ההחלטה באמת עובדת כשהמערכת חיה ומשרתת משתמשים אמיתיים (פרודקשן — production). למשל: latency (כמה זמן לוקח לקבל תשובה), error rate (אחוז הבקשות שנכשלות), queue lag (כמה משימות ממתינות בתור) ו-cache hit ratio (כמה פעמים מצאנו תשובה מוכנה מראש). כמו מדי לוח המחוונים ברכב — הם מראים אם הכול תקין.