עקביות

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

פעולות עם מודל עקביות חזק

Cloud Storage מספק מודל עקביות חזק גלובלי בשביל הפעולות הבאות:

  • קריאה אחרי כתיבה
  • קריאה אחרי עדכון מטא-נתונים
  • קריאה אחרי מחיקה
  • הצגת קטגוריות
  • הצגת אובייקטים

כשכותבים אובייקט ב-Cloud Storage, למשל כשמעלים, כותבים או מעתיקים אותו, האובייקט זמין לפעולות קריאה ומטא-נתונים מיד ברגע שמקבלים תשובה מוצלחת לבקשת הכתיבה. זה נכון לכל מיקומי הקטגוריות ולכל סוגי האחסון (storage class), וזה חל גם על יצירה של אובייקטים חדשים וגם על החלפה של אובייקטים קיימים. מכיוון שלפעולות כתיבה יש מודל עקביות חזק, אף פעם לא מקבלים תשובת 404 Not Found או נתונים לא פעילים בפעולת קריאה אחרי כתיבה או בפעולת קריאה אחרי עדכון מטא-נתונים.

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

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

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

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

פעולות עם מודל עקביות הדרגתי

לפעולות הבאות יש מודל עקביות הדרגתי:

  • הענקת גישה למשאבים או ביטול גישה למשאבים.

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

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

בקרת המטמון ועקביות

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

משך החיים של אובייקט במטמון מוגדר לפי המטא-נתונים Cache-Control המשויכים לאובייקט. אפשר להגדיר את המטא-נתונים Cache-Control באמצעות כותרת בקשה מסוג Cache-Control הכלולה בהעלאה הראשונית של האובייקט, או בעדכון מטא-נתונים של האובייקט לאחר מכן. מכיוון שאתם שולטים במטא-נתונים של Cache-Control, אתם יכולים גם לקבוע את מודל העקביות של האובייקטים שנשמרים במטמון. בנוסף, למרות שבקשות לאובייקטים יכולות לכלול כותרת Cache-Control משלהן, Cloud Storage יתעלם מהכותרות האלו אם הן מוגדרות להימנע מתוכן שנשמר במטמון.

המאמרים הבאים