בדף הזה מוסבר איך להגדיר את זמן ההשהיה המקסימלי של ביצוע (כתיבה) כדי לשפר את קצב העברת הנתונים של הכתיבה ב-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#
המשך
Java
Node.js
Python
Ruby
מעקב אחרי זמן האחזור של בקשות כתיבה
אפשר לעקוב אחרי השימוש במעבד (CPU) והחביון (latency) ב-Spanner באמצעות מסוףGoogle Cloud . כשמגדירים זמן השהיה ארוך יותר לבקשות כתיבה, צפוי שניצול המעבד יקטן, אבל זמן האחזור יגדל. מידע נוסף על זמן האחזור בבקשות Spanner מופיע במאמר תיעוד של זמן האחזור של בקשות Spanner API.