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