Datastore מספק זמינות גבוהה, יכולת הרחבה ועמידות על ידי הפצת הנתונים על פני מכונות רבות ושימוש בשכפול סינכרוני ללא שרת ראשי על פני אזור גיאוגרפי רחב. עם זאת, החיסרון בעיצוב הזה הוא שקצב העברת הנתונים לכתיבה של כל קבוצת ישויות מוגבל לכ-commit אחד לשנייה. יש גם מגבלות על שאילתות או על עסקאות שמתפרסות על כמה קבוצות ישויות. בדף הזה מפורטות המגבלות האלה ומוסברות שיטות מומלצות לארגון הנתונים כדי לשמור על מודל עקביות חזק, ועדיין לעמוד בדרישות של תפוקת הכתיבה של האפליקציה.
רמות עקביות
שאילתות ב-Datastore יכולות להחזיר את התוצאות שלהן באחת משתי רמות עקביות:
- שאילתות עם עקביות חזקה מבטיחות את התוצאות העדכניות ביותר, אבל יכול להיות שייקח יותר זמן להשלים אותן או שהן לא נתמכות במקרים מסוימים.
- שאילתות Eventually consistent בדרך כלל רצות מהר יותר, אבל לפעמים הן מחזירות תוצאות לא עדכניות.
בשאילתה עם מודל עקביות הדרגתי, גם הגישה לאינדקסים שמשמשים לאיסוף התוצאות היא עם מודל עקביות הדרגתי. לכן, לפעמים שאילתות כאלה עשויות להחזיר ישויות שכבר לא תואמות לקריטריונים של השאילתה, ועשויות גם להשמיט ישויות שתואמות לקריטריונים של השאילתה. שאילתות עם מודל עקביות חזק הן עקביות מבחינת עסקאות, כלומר התוצאות מבוססות על תמונת מצב אחת ועקבית של הנתונים.
התחייבויות לעקביות
התוצאות של השאילתות מוחזרות עם רמות שונות של הבטחת עקביות, בהתאם לסוג השאילתה:
- שאילתות של צאצאים (שאילתות שמופעלות מול קבוצת ישויות) הן עקביות חזקות כברירת מחדל, אבל אפשר להפוך אותן לעקביות בסופו של דבר על ידי הגדרת מדיניות הקריאה של Datastore (כפי שמוסבר בהמשך).
- שאילתות גלובליות (שאילתות שלא מופעלות מול קבוצת ישויות) תמיד עקביות בסופו של דבר.
בהרבה אפליקציות, אפשר להשתמש במודל עקביות הדרגתי (כלומר, שאילתה עם אחזור נתונים גלובלי שכוללת כמה קבוצות ישויות, שלפעמים מחזירה נתונים מעט לא עדכניים) כשרוצים לקבל תמונה רחבה של נתונים לא קשורים, ואז להשתמש במודל עקביות חזק (שאילתא לגבי ישות אב או חיפוש של ישות אחת) כשרוצים להציג או לערוך קבוצה אחת של נתונים שקשורים מאוד זה לזה. באפליקציות כאלה, בדרך כלל מומלץ למקם נתונים שקשורים מאוד זה לזה בקבוצות של ישויות. מספר גבוה יותר של קבוצות ישויות מגדיל את קצב העברת הנתונים, ומספר נמוך יותר של קבוצות ישויות מגדיל את נפח הישויות שאפשר לקרוא בשאילתת צאצא יחידה. אפליקציה צריכה לקחת את זה בחשבון כדי לקבוע את האיזון הנכון בין קצב העברת הנתונים לבין העקביות.
מדיניות קריאה של Datastore
כדי לשפר את הביצועים, אפשר להגדיר מדיניות קריאה לשאילתה כך שהתוצאות יהיו עקביות בסופו של דבר. (ב-Datastore API אפשר גם להגדיר באופן מפורש מדיניות עקביות חזקה, אבל להגדרה הזו אין השפעה מעשית, כי שאילתות גלובליות תמיד עקביות בסופו של דבר, ללא קשר למדיניות).
אפשר להפעיל קריאות עם עקביות סופית באמצעות אפשרויות הקריאה של אובייקט השאילתה:
C#
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore C# API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Go
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Go API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Java API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Node.js API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
PHP
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore PHP API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Python API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Ruby
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Ruby API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
שיקולים לגבי עסקאות ועקביות
התחייבויות ל-Datastore הן טרנזקציונליות, כלומר הן מתבצעות בהקשר של טרנזקציה וקבוצת השינויים של הטרנזקציה מוחלת במלואה או לא מוחלת בכלל, או לא טרנזקציונליות, כלומר קבוצת השינויים לא מוחלת במלואה או לא מוחלת בכלל.
עסקה אחת יכולה לכלול כל מספר של מוטציות ליצירה, לעדכון או למחיקה. כדי לשמור על עקביות הנתונים, הטרנזקציה מבטיחה שכל השינויים שהיא מכילה יוחלו על Datastore כיחידה אחת, או שאם אחד מהשינויים ייכשל, אף אחד מהם לא יוחל. בנוסף, כל הקריאות עם עקביות חזקה (שאילתות של צאצאים או פעולות lookup) שמתבצעות באותה טרנזקציה מסתמכות על תמונת מצב אחת ועקבית של הנתונים. בשביל שאילתות עם עקביות חזקה, צריך לציין מסנן של ישות אב. שאילתות שמשתתפות בעסקה תמיד עקביות מאוד. בכל טרנזקציה יכולות להיות עד 25 קבוצות ישויות. קריאות עם עקביות סופית לא מוגבלות כך, והן מספיקות במקרים רבים. שימוש בקריאות עם עקביות סופית עשוי לאפשר לכם להפיץ את הנתונים בין מספר גדול יותר של קבוצות ישויות, וכך להשיג קצב העברת נתונים גבוה יותר לכתיבה על ידי ביצוע פעולות Commit במקביל בקבוצות ישויות שונות. עם זאת, כדי לקבוע אם קריאות עם עקביות בסופו של דבר מתאימות לאפליקציה שלכם, אתם צריכים להבין את המאפיינים שלהן:
- יכול להיות שהתוצאות של הקריאות האלה לא ישקפו את העסקאות האחרונות. הסיבה לכך היא שפעולות הקריאה האלה לא מבטיחות שהרפליקה שהן פועלות עליה מעודכנת. במקום זאת, הם משתמשים בנתונים שזמינים בעותק המשוכפל בזמן ביצוע השאילתה.
- יכול להיות שטרנזקציה מחויבת שחלה על כמה קבוצות של ישויות תיראה כאילו היא חלה על חלק מהישויות ולא על אחרות. עם זאת, חשוב לזכור שעסקה אף פעם לא תופיע כעסקה שהופעלה באופן חלקי במסגרת ישות אחת.
- יכול להיות שתוצאות השאילתה יכללו ישויות שלא היו אמורות להיכלל בהתאם לקריטריוני הסינון, ויכול להיות שהן לא יכללו ישויות שהיו אמורות להיכלל. זה יכול לקרות כי גרסת תמונת המצב שמשמשת לקריאת האינדקסים עשויה להיות שונה מגרסת תמונת המצב שמשמשת לקריאת הישות.
הגדרת מבנה הנתונים לשמירה על עקביות
כדי להבין איך לבנות את הנתונים כך שיהיה מודל עקביות חזק, נשווה בין שתי גישות שונות לאפליקציית רשימת משימות פשוטה. בגישה הראשונה, כל ישות נוצרת בקבוצת ישויות חדשה משלה (כלומר, כל ישות היא ישות בסיס):
C#
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore C# API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Go
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Go API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Java API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Node.js API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
PHP
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore PHP API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Python API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Ruby
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Ruby API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
לאחר מכן, המערכת שולחת שאילתה לגבי סוג הישות Task כדי למצוא את המשימות שעדיין לא בוצעו עם עדיפות של 4 ומעלה, וממיינת אותן בסדר יורד לפי עדיפות:
C#
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore C# API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Go
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Go API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Java API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Node.js API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
PHP
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore PHP API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Python API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Ruby
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Ruby API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
עם זאת, מכיוון שאנחנו משתמשים בשאילתה עם עקביות סופית (ולא בשאילתא לגבי ישות אב), יכול להיות שתוצאות השאילתה לא יכללו את הישות החדשה. עם זאת, כמעט כל הפעולות של כתיבה יהיו זמינות לשאילתות עם עקביות סופית זמן קצר אחרי ביצוע commit. במקרים רבים, פתרון שמספק את התוצאות של שאילתה עם עקביות הדרגתית בהקשר של השינויים שהמשתמש הנוכחי ביצע בעצמו, יספיק כדי שההשהיות האלה יהיו מקובלות לחלוטין.
כדי להשיג מודל עקביות חזק, כדאי ליצור את הישויות עם נתיב אב. נתיב האב מזהה את ישות הבסיס המשותפת שבה מקובצות הישויות שנוצרו. בדוגמה הזו נעשה שימוש בנתיב של ישות אב מסוג TaskList בשם default:
C#
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore C# API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Go
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Go API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Java API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Node.js API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
PHP
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore PHP API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Python API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Ruby
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Ruby API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
לאחר מכן תוכלו לבצע שאילתא לגבי ישות אב עם עקביות חזקה בתוך קבוצת הישויות שזוהתה על ידי ישות שורש משותפת:
C#
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore C# API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Go
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Go API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Java API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Node.js API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
PHP
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore PHP API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Python API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Ruby
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Ruby API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
הגישה הזו מאפשרת מודל עקביות חזק על ידי כתיבה לקבוצת ישויות אחת לכל רשימת משימות, אבל היא גם מגבילה את השינויים ברשימת המשימות ללא יותר מכתיבה אחת לשנייה (המגבלה הנתמכת לקבוצות ישויות). אם סביר להניח שהאפליקציה שלכם תיתקל בשימוש אינטנסיבי יותר בפעולות כתיבה, יכול להיות שתצטרכו לשקול שימוש באמצעים אחרים. לדוגמה, אם האפליקציה שלכם היא ספר אורחים שמאפשר למשתמשים לפרסם הודעות בלוח הודעות ציבורי, אתם יכולים להציב פוסטים מהזמן האחרון ב-memcache עם תפוגה ולהציג שילוב של פוסטים מהזמן האחרון מ-memcache ומ-Datastore, או שאתם יכולים לשמור אותם במטמון בקובץ Cookie, להציב מצב מסוים בכתובת ה-URL או משהו אחר לגמרי. המטרה היא למצוא פתרון אחסון במטמון שיספק את הנתונים של המשתמש הנוכחי במהלך התקופה שבה המשתמש מפרסם באפליקציה שלכם. חשוב לזכור: אם מבצעים lookup, שאילתא לגבי ישות אב (בהנחה שמדיניות קריאה לא מוגדרת כמודל עקביות הדרגתי) או כל פעולה בתוך טרנזקציה, תמיד יוצגו הנתונים שנכתבו לאחרונה.
דוגמאות נוספות לשימוש בעסקאות זמינות כאן.
הגבלות על עסקאות של קבוצות ישויות
ארגון הנתונים בקבוצות של ישויות יכול להגביל את סוגי העסקאות שאפשר לבצע:
- כל הנתונים שאליהם יש גישה בעסקה צריכים להיכלל ב-25 קבוצות ישויות לכל היותר.
- אם רוצים להשתמש בשאילתות בתוך טרנזקציה, צריך לארגן את הנתונים בקבוצות ישויות כך שאפשר יהיה לציין מסנני ישות אב שיותאמו לנתונים הנכונים.
- יש מגבלת קצב העברת נתונים לכתיבה של בערך עסקה אחת בשנייה לקבוצת ישויות אחת. המגבלה הזו קיימת כי Datastore מבצע שכפול סינכרוני ללא שרת ראשי של כל קבוצת ישויות על פני אזור גאוגרפי רחב, כדי לספק מהימנות גבוהה ועמידות בפני תקלות.
מידע נוסף על עדכון ישויות ואינדקסים מופיע במאמר בידוד טרנזקציות.