סקירה כללית על אחסון באינטרנט

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

המאמר הזה מספק בסיס קצר להערכת ממשקי ה-API והשירותים לאחסון, ולאחר מכן נציג טבלת השוואה והנחיות כלליות. בעתיד הקרוב אנחנו מתכננים להוסיף עוד משאבים להבנה לעומק של נושאי האחסון שנבחרו.

טקסונומיה של אחסון

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

מודל נתונים

המודל לאחסון יחידות נתונים קובע את האופן שבו הנתונים מאורגנים באופן פנימי, מה שמשפיע על קלות השימוש, העלות והביצועים של בקשות האחסון והאחזור.

  • מבנה: הנתונים שמאוחסנים בטבלאות עם שדות מוגדרים מראש, כמו מערכות לניהול מסדי נתונים מבוססות SQL, מתאימים מאוד לשאילתות גמישות ודינמיות, שבהן יכול להיות שהמגוון המלא של סוגי השאילתות לא יהיה ידוע. דוגמה בולטת למאגר נתונים מובְנים בדפדפן היא IndexedDB.

  • מפתח/ערך: מאגרי נתונים של מפתח/ערך ומסדי נתונים קשורים של NoSQL, מאפשרים לאחסן ולאחזר נתונים לא מובְנים שנוספו לאינדקס באמצעות מפתח ייחודי. מאגרי נתונים של מפתח/ערך דומים לטבלאות גיבוב (hash), בכך שהם מאפשרים גישה קבועה לנתונים אטומים שנוספו לאינדקס, כל הזמן. דוגמאות בולטות למאגרי נתונים של מפתח/ערך הן Cache API בדפדפן ו-Apache Cassandra בשרת.

  • Byte Streams:המודל הפשוט הזה מאחסן נתונים כמחרוזת אטומה של בייטים באורך משתנה, ומשאיר כל צורה של ארגון פנימי לשכבת האפליקציה. המודל הזה מתאים במיוחד למערכות קבצים ולאובייקטי נתונים אחרים שמאורגנים באופן היררכי. דוגמאות בולטות למאגרי נתונים של מקורות נתונים בבייטים כוללות מערכות קבצים ושירותי אחסון בענן.

התמדה

אפשר לנתח שיטות אחסון באפליקציות אינטרנט בהתאם להיקף הנתונים הקבוע.

  • משך הסשן: הנתונים בקטגוריה הזו נשמרים רק כל עוד סשן יחיד באינטרנט או כרטיסייה אחת בדפדפן נשארים פעילים. דוגמה למנגנון אחסון עם עקביות סשן היא סשן Storage API.

  • עקביות במכשיר: הנתונים בקטגוריה הזו נשמרים בכל הסשנים ובכרטיסיות/החלונות בדפדפן, במכשיר מסוים. דוגמה למנגנון אחסון עם עקביות מכשיר היא API למטמון.

  • התמדה גלובלית: הנתונים בקטגוריה הזו נשמרים בכל הסשנים והמכשירים. לכן, זוהי הצורה היציבה ביותר של שמירת נתונים. דוגמה למנגנון אחסון עם עקביות גלובלית היא Google Cloud Storage.

תמיכה בדפדפן

המפתחים צריכים לבחור את ה-API המתאים ביותר לדומיין הבעיות שלהם. עם זאת, הם צריכים גם לקחת בחשבון את העובדה שממשקי API סטנדרטיים ומבוססים היטב מעדיפים ממשקים מותאמים אישית או קנייניים, כי הם בדרך כלל חיים ארוכים יותר וזוכים בהם תמיכה רחבה יותר. הם עשויים גם ליהנות מבסיס ידע רחב יותר ומסביבה עסקית עשירה יותר למפתחים.

טרנזקציות

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

סנכרון/אסינכרוני

חלק מממשקי ה-API של האחסון הם סינכרוניים בכך שבקשות אחסון או אחזור חוסמות את ה-thread הפעיל הנוכחי עד להשלמת הבקשה. ההנחיה הזו מעיקה במיוחד בדפדפני אינטרנט, שבהם בקשת האחסון משתפת את ה-thread הראשי עם ממשק המשתמש. מטעמי יעילות וביצועים, יש עדיפות לממשקי API לאחסון אסינכרוני.

ניפוי באגים באחסון ב-Chrome DevTools

ניתן לעיין במסמכים הבאים כדי לקבל מידע נוסף על השימוש בכלי הפיתוח ל-Chrome כדי לבדוק ולנפות באגים בממשק ה-API של אחסון באינטרנט לפי בחירתכם. ממשקי API שלא צוינו כאן לא נתמכים בכלי הפיתוח או לא רלוונטיים.

אם אתם משתמשים בכמה ממשקי API לאחסון, כדאי לבדוק את התכונה 'ניקוי אחסון' בכלי הפיתוח. התכונה הזו מאפשרת לנקות מספר חנויות בלחיצה אחת. למידע נוסף ראו את המאמר ניקוי של קובצי שירות (service worker), אחסון, מסדי נתונים וקבצים שמורים.

השלב הבא...

אחרי שסקרנו כמה מהדרכים הרלוונטיות לחשוב על מנגנוני אחסון, ונשווה בין ממשקי ה-API והשירותים הפופולריים ביותר שזמינים כיום, נוסיף עוד תוכן בקרוב כדי להתעמק בנושא אחד או יותר של תחומי עניין: