שכפול וביצועים

הפעלת רפליקציה משפיעה על הביצועים של מופע Bigtable. ההשפעה חיובית על חלק מהמדדים ושלילית על אחרים. חשוב להבין את ההשפעות הפוטנציאליות על הביצועים לפני שמחליטים להפעיל שכפול.

קריאת נתוני התפוקה

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

כתיבת נתוני התפוקה

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

לדוגמה, נניח שיש לכם מופע של אשכול יחיד, ולאשכול יש 3 צמתים:

מופע של אשכול יחיד עם 3 צמתים

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

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

מופע של אשכול יחיד עם 6 צמתים

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

מופע של שני אשכולות עם 6 צמתים

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

זמן האחזור של השכפול

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

השימוש בצומת

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

פרופילים של אפליקציות וניתוב תעבורת נתונים

בהתאם לתרחיש השימוש, תשתמשו בפרופיל אפליקציה אחד או יותר כדי לנתב את התנועה שלכם ב-Bigtable. כל פרופיל אפליקציה משתמש בניתוב מרובה אשכולות או בניתוב של אשכול יחיד. בחירת הניתוב יכולה להשפיע על הביצועים.

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

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

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

הוספת טווחים של שורות

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

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