בדף הזה מוסבר איך להגדיר את הזמן המקסימלי של השהיית ביצוע (כתיבה) כדי לשפר את קצב העברת הנתונים של הכתיבה ב-Spanner.
סקירה כללית
כדי להבטיח עקביות של הנתונים, Spanner שולח בקשות כתיבה לכל העותקים המשוכפלים שמצביעים במסד הנתונים. תהליך השכפול הזה יכול ליצור עומס חישובי. מידע נוסף זמין במאמר בנושא שכפול.
כתיבות שעברו אופטימיזציה של קצב העברת הנתונים מאפשרות לפרוס את עלויות החישוב האלה על פני קבוצת כתיבות שמתבצעות יחד. כדי לעשות את זה, Spanner מוסיף השהיה קצרה ואוסף קבוצה של פעולות כתיבה שצריך לשלוח לאותם משתתפים בהצבעה. ביצוע כתיבות בצורה הזו יכול להוביל לשיפורים משמעותיים בנפח הנתונים, אבל על חשבון עלייה קלה בזמן האחזור.
התנהגות ברירת מחדל
אם לא מגדירים זמן השהיה של ביצוע פעולות, יכול להיות ש-Spanner יגדיר השהיה קצרה אם הוא יחשוב שזה יפחית את העלות של פעולות הכתיבה.
תרחישים נפוצים לדוגמה
אפשר להגדיר באופן ידני את זמן ההשהיה של בקשות הכתיבה בהתאם לצרכים של האפליקציה. אפשר גם להשבית את ההשהיות של ביצוע השינויים באפליקציות שרגישות מאוד לזמן האחזור, על ידי הגדרת הזמן המקסימלי להשהיית ביצוע השינויים ל-0 אלפיות השנייה.
אם יש לכם אפליקציה שסובלת זמן אחזור ואתם רוצים לבצע אופטימיזציה של התפוקה, הגדרה של זמן השהיה ארוך יותר לביצוע פעולת commit משפרת משמעותית את התפוקה, אבל יוצרת זמן אחזור גבוה יותר לכל פעולת כתיבה. לדוגמה, אם אתם מעלים כמות גדולה של נתונים והאפליקציה לא צריכה ש-Spanner יכתוב נתונים במהירות, אתם יכולים להגדיר את זמן ההשהיה של השמירה לערך ארוך יותר, כמו 100 אלפיות השנייה. מומלץ להתחיל עם ערך של 100 אלפיות השנייה, ואז לשנות אותו עד שתקבלו את האיזון בין זמן האחזור לבין קצב העברת הנתונים שמתאים לצרכים שלכם. ברוב האפליקציות, הערך האופטימלי הוא בין 20 ל-100 אלפיות השנייה.
אם יש לכם אפליקציה שרגישה לזמן אחזור, גם Spanner רגיש לזמן אחזור כברירת מחדל. אם עומס העבודה שלכם לא אחיד, יכול להיות ש-Spanner יגדיר עיכוב קטן. אתם יכולים להתנסות בהגדרת ערך של 0 אלפיות השנייה כדי לבדוק אם צמצום זמן האחזור על חשבון הגדלת קצב העברת הנתונים מתאים לאפליקציה שלכם.
הגדרת זמני השהיה שונים להעלאת שינויים
אתם יכולים להגדיר זמני השהיה שונים של אישור ביצוע על קבוצות משנה של פעולות הכתיבה. אם עושים את זה, Spanner משתמש בזמן ההשהיה הקצר ביותר שהוגדר עבור קבוצת הפעולות. עם זאת, ברוב תרחישי השימוש מומלץ לבחור ערך יחיד, כי כך ההתנהגות צפויה יותר.
מגבלות
אפשר להגדיר זמן השהיה של אישור בין 0 ל-500 אלפיות השנייה. הגדרת השהיות של אישור מעל 500 אלפיות השנייה גורמת לשגיאה.
הגדרת השהיה מקסימלית של ביצוע פעולות בבקשות לביצוע פעולות
הפרמטר של עיכוב השליחה המקסימלי הוא חלק מהשיטה CommitRequest. אפשר לגשת לשיטה הזו באמצעות RPC API, API בארכיטקטורת REST או באמצעות ספריית הלקוח של Cloud Spanner.
C#
Go
Java
Node.js
Python
Ruby
מעקב אחרי זמן האחזור של בקשות כתיבה
אתם יכולים לעקוב אחרי השימוש במעבד (CPU) והשהייה ב-Spanner באמצעות מסוףGoogle Cloud . אם מגדירים זמן השהיה ארוך יותר לבקשות הכתיבה, צפוי שהשימוש במעבד יקטן, אבל זמן האחזור יגדל. מידע נוסף על זמן האחזור בבקשות Spanner מופיע במאמר בנושא תיעוד והצגה חזותית של זמן האחזור של בקשות Spanner API.