אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X. מידע
מדיניות של מפת מפתח/ערך (KVM) היא רכיב בסיסי בניהול הגדרות וערכים דינמיים במערכת. עם זאת, הנוכחות של מפתחות שלא קיימים ב-KVM האלה והחיפוש שלהם עלולים להשפיע באופן משמעותי על הביצועים ולהוביל לעלייה בזמני האחזור.
תבנית אנטי
כשמדיניות KVM מנסה לאחזר ערך של מפתח שלא קיים במיפוי מפתח-ערך, מתבצעות קריאות נוספות למסד הנתונים של Cassandra. התקשורת המוגברת הזו עם מסד הנתונים של ה-Backend, במיוחד לגבי מפתחות שלא קיימים, צורכת יותר משאבים וזמן, ולכן מגדילה את זמן האחזור הכולל של הבקשה.
השפעה
ההשפעה העיקרית של האנטי-תבנית הזו היא עלייה בזמני האחזור של זמן הריצה ושגיאות במאגר הנתונים. מהירות העיבוד של המערכת והגישה לנתונים מושפעות לרעה, כי האחוז הגבוה של חיפושי מפתח שלא קיימים הוא הסיבה העיקרית לזמני האחזור שנצפו. זוהי מאפיין של זמן הריצה שתלוי ישירות באופי הבקשות הנכנסות.
תסמינים
- המערכת מציגה זמני טעינה ארוכים יותר בזמן הריצה.
- שגיאות במאגר הנתונים, שמצביעות על בעיות במהירות העיבוד ובגישה לנתונים.
הודעות שגיאה
ניתוח הקובץsystem.log מצביע על נוכחות של שגיאות חוזרות שקשורות ל-Cassandra, במיוחד בנוגע לאחזור נתונים ולסטטוס של מאגר המארחים. הודעות השגיאה העיקריות שזוהו כוללות:
ERROR DATASTORE.CASSANDRA - AstyanaxCassandraClient.get() : Exception while fetching rowKey : [7ccd1062-6e05-4d12-aa86-5c7bf944682d, app_credentials, kms] from column family:{} in keyspace:{}ERROR DATASTORE.CASSANDRA - AstyanaxCassandraClient.logHostPoolInCaseOfErrors() : Cassandra Host Pool under use - All Hosts: xx.xx.xx.102(xx.xx.xx.102):9160,xx.xx.xx.101(xx.xx.xx.101):9160,xx.xx.xx.103(xx.xx.xx.103):9160. Active Hosts: xx.xx.xx.101(xx.xx.xx.101):9160,xx.xx.xx.102(xx.xx.xx.102):9160
אבחון
ניתוח של קובץ מעבד ההודעות system.log מגלה ערכים גבוהים של L1MissL2Miss בדוחות המדדים של KVM למשך 5 דקות.
לדוגמה: CACHE.org__env__KVM-Example.statistics [hitCount=215 L1MissL2Miss=14120 hitRate=5 L1MissL2Hit=212 getCount=556]
שיטה מומלצת
כדי לפתור את הבעיה הזו, מומלץ להוסיף ערכי placeholder למפתחות שלא קיימים ב-KVM. הגישה הזו אמורה לצמצם את מספר הקריאות ל-Cassandra עבור מפתחות שלא קיימים, לשפר את הביצועים ולקצר את זמן האחזור.