יום שני, 17 ביוני 2013

185 final class 30 caching


Don't say a prayer for me now, Save it 'til the morning after” - Duran Duran, Save a prayer
  • שומרים טוב-טוב בלב (אבל רק עד שמשהו יותר חשוב יגיע) - ישי "השקט", גילי "המביט", איתי "מישיר המבט" ורן "המארגן". הנושא שמור בתוך כספת - Caching.
  • יבגני ודמיטרי נתנו בראש בכנס רברסים בנושא Cache - שווה צפיה.
  • Caching אפשר לעשות בכל מיני רמות, בכל מיני מקומות, לכל מיני דברים.
  • בדרך כלל, מה שמשתמשים בו יותר נשאר בזיכרון.
  • החישוב יקר וכך גם הרשת - אלה הם אזורים מועדפים ל-Caching
  • בשפות עם GC, ככל שיש יותר אובייקטים בזיכרון, ככה ה-GC יטחן (אאוצ'!).
  • Cache invalidation - קשה, קשה...
  • גם Client side caching - קשה, קשה...
  • Memcached - סופר-דופר קאש. שווה.
  • תביא לי את הקובץ - אבל רק אם משהו השתנה.
  • כבר בכיתה ב' אנחנו עושים Caching ללוח הכפל. בהמשך, בתנאי שאתם תלמידים טובים וממושמעים, אתם עושים Caching לכל מה שאתם לומדים ויוצאים מבית הספר עם ידע שהוא כבר 4 שנים אחרי ה-Expiry של ה-TTL שלו.
  • ומה עם המפתחות? מה ההתפלגות שלהם?
  • כמו בעוד תחומים בחיים, אם ה-Cache שלך מפספס יותר מדי פעמים - אתה עושה משהו לא נכון.
  • במנועי החיפוש הגדולים היום (גוגל ו-בינג), רוב השאילתות מאוחסנות ב-Cache.

אירועים:
  • DevOpsDays בישראל. יש לכם משהו חכם להגיד? אנחנו רוצים לשמוע. ואם אתם רוצים להיות ספונסרים - אז גם אפשר.

הקובץ נמצא כאן, תודה ליותם אורון על התמלול.

5 תגובות:

אנונימי אמר/ה...

אני אשמח לשמוע קצת יותר על הבנצ'מרק שעשית לCDN.
אילו חברות? איזה סוגי בדיקות?
זה היה מהיר יותר לישראל או למספר מיקומים שונים? (והכי מעניין - לארה"ב)

Ran Tavory אמר/ה...

הי אנונימי, אני בדקתי שלוש CDNs. limelight, cloudfront ו cdn77.
ליימלייט היו הכי טובים אבל מאוד יקרים. cloudwatch היו ככה ככה ומחיר סביר, cdn77 היו יותר טובים מ cloudwatch  וחצי מחיר אז הלכתי על 77.
בדקתי רק קבצי וידאו בערך 7 מגה ממקומות שונים בעולם - ארה"ב, אירופה ואסיה, לא בישראל.

אנונימי אמר/ה...

תודה!

נדב אמר/ה...

התפתחות נוספת מעניינת בתקופה האחרונה בתחום הזה זה SSD. השיפור בביצועים לעומת HDD היא מאוד מרשימה, והיחס עלות לשיפור ביצועים שהם מספקים הוא מאוד אטרקטיבי. זה לא יכול להתחרות ב RAM, אבל אם יש לכם cache אז מאוד מומלץ שהדבר הבא שזה ינסה לגשת אליו יהיה SSD ולא דיסק קשיח.

בנוסף ל caching, אפשר גם לקבל שיפור ביצועים לדאטאבייסים (אני מריץ postgres על SSD, ורואה הבדלים משמעותיים), כמו גם לתת למערכת ההפעלה לנהל את ה swap על גבי SSD ולקבל שיפור מערכתי כללי.

חסרון אחד שחשוב להזכיר הוא שSSD זה מדיית אחסון פחות אמינה ועם אורך חיים יותר קצר, ככה שאם מדובר במידע משמעותי (נניח דאטאבייס), חשוב שיהיה מספר מקומות שונים ששומרים את המידע, ולא לסמוך על מקור בודד. זה פחות בעיה כשמדובר ב cache.

יש מאמר מעניין על הנושא [1] על זה ב highscalability.com, ודיון ב HN על המאמר [2] עם כמה תגובות מעניינות.

[1] http://highscalability.com/blog/2012/12/10/switch-your-databases-to-flash-storage-now-or-youre-doing-it.html
[2] https://news.ycombinator.com/item?id=4900426

Ran Tavory אמר/ה...

נדב, תודה על ההערה המושקעת, והרפרנסים!

הוסף רשומת תגובה