
Cloudflare ממקדת בניות DNS, מקצצת זיכרון Zone Builder ועיכובים
מתכנן הבנייה הממוקד של Cloudflare ומתזמן המאוחד קיצצו את זיכרון השיא של Zone Builder ב-85% והפחיתו בחצי את עיכוב ההשלמה החציוני, בעוד 92.95% מהבניות נמנעות מבנייה מחדש של אזורים שלמים.
Cloudflare שינתה את Zone Builder של DNS כדי לבחור את הבנייה הבטוחה הקטנה ביותר עבור כל שינוי במקום לבנות מחדש אזורים שלמים, תוך קיצוץ זיכרון השיא ב-85% והפחתת עיכוב ההשלמה החציוני בחצי. המתכנן והמתזמן המאוחד מאפשרים גם ל-92.95% מהבניות להימנע מבנייה מחדש של האזור כולו.
מדוע בניות מלאות הפכו ליקרות
Zone Builder הופך שינויים במסד הנתונים לנתונים עבור שרתי ה-DNS הסמכותיים של Cloudflare וכותב את השינויים ל-Quicksilver. בנייה מלאה קוראת, מקודדת ומשווה כל רשומה ומחזיקה את כל האזור בזיכרון, דבר שיקר עבור אזורים עם עשרות מיליוני רשומות. כיום הבנאי מקבל כ-700 שינויי רשומות DNS בשנייה, עלייה מכ-250 ב-2022, בנוסף לכ-100 אירועים אחרים.
בניות ממוקדות וחמישה סוגי בנייה
אירועים כוללים כעת שדות ואפשרויות אזור שהשתנו היכן שהם זמינים. המתכנן ממפה כל שינוי לאחד מחמישה סוגי בנייה: משאבים בלבד; משאבים ומטא-נתונים; אפקס ומטא-נתונים; טיהור; או אזור מלא. הוא משתמש בבניות מלאות רק כשלא ניתן להוכיח שעבודה קטנה יותר בטוחה. במשך 24 שעות, 86.81% היו משאבים בלבד, 2.54% משאבים ומטא-נתונים, 2.30% אפקס ומטא-נתונים, 1.30% טיהור, ו-7.04% אזור מלא. שני סוגי המטא-נתונים היו בעבר בניות מלאות, ולכן בניות מלאות ירדו בכ-40%.
שמות משותפים ותזמון
Quicksilver שומר מפתח מטא-נתונים אחד המשותף לכל אזור Cloudflare עם אותו שם תחום. בניות ממוקדות בונות מחדש את המפתח מקבוצת המועמדים הנוכחית כשנדרש וכותבות את הרשומות של אזור לפני המטא-נתונים שמתייחסים אליהן. מתזמן מאוחד ממזג עבודה בתור לאותו אזור, כך ששינוי רשומת A ושינוי תו כללי (wildcard) יכולים להפוך לבנייה אחת. הוא שומר הודעות Kafka מצורפות עד שהתוצאות נכתבות בבטחה, ומונע מאזור עמוס אחד לתפוס כל עובד דרך מרווח בנייה מחדש לכל אזור.
אימות, זיכרון ותוצאות עיכוב
בדיקות שוויון משוות בניות מלאות וממוקדות בייט לבייט. Zone Builder מראה צורכת אירועי Kafka בייצור וקוראת מצב מסד נתונים בייצור תוך כתיבה לסביבת Quicksilver נפרדת; משווה בודק מדגם של 20%. לאחר ההשקה, זיכרון ערכת העבודה המצטבר ירד מממוצע של 49 GiB ל-7 GiB והשיאים מ-79 GiB ל-12 GiB. בהשוואה זו לצד זו, קפיצת העיכוב הגדולה ביותר של p99 ירדה מ-14.6 דקות ל-1.21 דקות. לאחר המתנות קצרות יותר של מאגד ומרווח בנייה מחדש, עיכוב ההשלמה החציוני ירד מכ-7.7 שניות לכ-3.3 שניות.
מקורות: Cloudflare
SiTech — פיתוח אתרים בכוח ה-AI
אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.