מידע על גורם השכפול ורמת העקביות של קסנדרה

Edge for Private Cloud גרסה 4.18.01

מידע על גורם השכפול של Cassandra

Cassandra מאחסנת רפליקות של נתונים במספר צמתים כדי להבטיח אמינות ועמידות בכשלים. אסטרטגיית הרפליקציה לכל מרחב מפתחות של Edge קובעת את הצמתים שבהם ימוקמו הרפליקות.

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

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

כדי להציג את הסכימה של Cassandra, תוכלו להשתמש בתהליך הבא, שמציג את גורם השכפול לכל מרחב מפתחות של Edge:

  1. מתחברים לצומת של Cassandra.
  2. מריצים את הפקודה הבאה:
    > /opt/apigee/apigee-cassandra/bin/cassandra-cli -h $(hostname -i) <<< "show schema;"

    כאשר $(hostname -i) מזהה את כתובת ה-IP של צומת Cassandra. אפשרות נוספת היא להחליף את $(hostname -i) בכתובת ה-IP של הצומת.

לכל מרחב מפתחות, הפלט יופיע בצורה:

create keyspace kms
  with placement_strategy = 'NetworkTopologyStrategy'
  and strategy_options = {dc-1 : 3}
  and durable_writes = true;

אפשר לראות שבמרכז נתונים 1, dc-1, גורם השכפול שמוגדר כברירת מחדל של מרחב המפתחות של kms הוא שלושה להתקנה עם שלושה צומתי Cassandra.

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

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

מידע על רמת העקביות של Cassandra

רמת העקביות של Cassandra מוגדרת כמספר המינימלי של צומתי Cassandra שחייבים לאשר פעולת קריאה או כתיבה כדי שהפעולה תיחשב כמוצלחת. אפשר להקצות רמות עקביות שונות למרווחי מפתח שונים ב-Edge.

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

חישוב הערך של LOCAL_QUORUM למרכז נתונים הוא:

LOCAL_QUORUM = (replication_factor/2) + 1

כפי שתואר קודם, גורם השכפול שמוגדר כברירת מחדל לסביבת ייצור של Edge עם שלושה צומתי Cassandra הוא שלושה. לכן, ערך ברירת המחדל של LOCAL_QUORUM = (3/2) +1 = 2 (הערך מעוגל כלפי מטה למספר שלם).

כש-LOCAL_QUORUM = 2, לפחות שניים מתוך שלושת הצמתים של Cassandra במרכז הנתונים חייבים להגיב לפעולת קריאה/כתיבה כדי שהפעולה תצליח. במקרה של שלושה צמתים של אשכול Cassandra, האשכול יוכל כתוצאה מכך שצומת אחד יירד לכל מרכז נתונים.

כשמציינים את רמת העקביות כ-LOCAL_QUORUM, Edge נמנעת מזמן האחזור שנדרש על ידי תיקוף פעולות במרכזי נתונים מרובים. אם במרחב מפתחות נעשה שימוש בערך QUORUM של Cassandra כרמת העקביות, יהיה צורך לאמת את פעולות הקריאה/כתיבה בכל מרכזי הנתונים.

כדי לראות את רמת העקביות של מעבד ההודעות של Edge או של צומתי שרת הניהול:

  1. מתחברים לצומת של מעבד ההודעות.
  2. משנים את הספרייה /opt/apigee/edge-message-processor/conf:
    > cd /opt/apigee/edge-message-processor/conf
  3. כדי לשמור על עקביות בכתיבה:
    > grep -ri "write.consistencylevel" *
  4. כדי לשמור על עקביות בקריאה:
    > grep -ri "read.consistencylevel" *
  5. נכנסים לצומת של שרת הניהול.
  6. משנים את הספרייה /opt/apigee/edge-management-server/conf:
    > cd /opt/apigee/edge-management-server/conf
  7. חוזרים על שלבים 3 ו-4.

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