כדי לפנות נפח אחסון משורות שעודכנו או נמחקו, לעדכן את הנתונים הסטטיסטיים של הטבלה ולמנוע את התופעה של גלישת מזהה טרנזקציה, ב-AlloyDB ל-PostgreSQL מופעלת כברירת מחדל התכונה "ניקוי אוטומטי מותאם". Adaptive autovacuum מתאים באופן אוטומטי את עומסי העבודה של ה-vacuum בהתאם לשינויים בתנועה במסד הנתונים, מסיר טאפלים מתים ושומר על ביצועים עקביים של טרנזקציות ועל זמינות גבוהה.
פעולת הוואקום היא פעולת תחזוקה קריטית ב-PostgreSQL שמונעת ניפוח של טבלאות או אינדקסים, ומקפיאה מזהי עסקאות כדי למנוע את גלישת מזהי העסקאות. מידע נוסף זמין במאמר Routine vacuuming.
אפשר להשבית או לשנות את ה-autovacuum הדינמי ב-AlloyDB באמצעות דגלים לניהול מסד נתונים.
יתרונות
אלה היתרונות של Adaptive autovacuum:
כוונון אוטומטי של משאבים. AlloyDB מתאים באופן אוטומטי משאבים כמו מעבד, קלט/פלט, מספר תהליכי הוואקום והזיכרון לתהליך הוואקום, על סמך הסטטוס בזמן אמת של עומס העבודה והמשאבים הזמינים, בלי להשפיע על ביצועי המערכת.
מניעת גלישה של מזהה עסקה. AlloyDB עוקב אחרי ההתקדמות של פעולת ה-VACUUM ומהירות הצריכה של מזהי העסקאות. במקרה הצורך, AlloyDB מצמצם את צריכת מזהי העסקאות על ידי ביצוע פעולת vacuum בכל טבלה במסד הנתונים, וכך מונע את גלישת מזהי העסקאות.
ניקוי תקופתי של טבלאות. AlloyDB מפעיל את autovacuum על סמך מספר ה-tuples המתים והדפים שצריך לסרוק. הוא מסיר רשומות לא פעילות בזמן כדי למנוע ניפוח של טבלאות או אינדקסים.
זיהוי אוטומטי של חסימות. AlloyDB מזהה באופן אוטומטי חסימות כמו טרנזאקציות שפועלות במשך זמן רב, טרנזאקציות מוכנות מיותרות ומשבצות רפליקציה מיותרות, ומציג הודעות אזהרה דומות להודעה הבאה ביומן
postgres:Found a backend process PROCESS_ID with a long running transaction whose transaction id age AGE is larger than or equal to the transaction age threshold AGE_THRESHOLD.
הגדרת autovacuum דינמי
כברירת מחדל, התכונה "פינוי אוטומטי מותאם" מופעלת ב-AlloyDB. כדי להשבית את הפינוי האוטומטי הדינמי, מגדירים את הדגל enable_google_adaptive_autovacuum לניהול מסד הנתונים של המכונה לערך off.
מידע נוסף על הגדרת דגלים לניהול מסד נתונים זמין במאמר הגדרת דגלים לניהול מסד נתונים של מכונה.
AlloyDB תומך בכמה דגלים סטנדרטיים לניהול מסד נתונים של PostgreSQL שקשורים ל-vacuum ול-autovacuum, למשל vacuum_cost_delay ו-autovacuum_vacuum_cost_delay.
לא צריך להגדיר ערכים באף אחד מהדגלים האלה כדי שהתכונה "פינוי אוטומטי אדפטיבי" תפעל, כי היא מתאימה את ההתנהגות שלה לעומסי העבודה בפועל ומבצעת אופטימיזציה בהתאם.
אם תגדירו ערכים בדגלים האלה, התכונה "פינוי אוטומטי דינמי" תתאים את ההתנהגות שלה כדי להביא בחשבון את ההעדפות שלכם.
כדי לראות את הרשימה המלאה של דגלים לניהול מסד נתונים של PostgreSQL שנתמכים ושקשורים ל-vacuum ול-autovacuum, קראו את המאמרים דגלים של vacuum ודגלים של autovacuum.