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

Edge for Private Cloud גרסה 4.17.05

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

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

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

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

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

  1. מתחברים לצומת של Cassandra.
  2. מריצים את הפקודה הבאה:
    &gt; /opt/apigee/apigee-cassandra/bin/cassandra-cli -h $(hostname -i) <<< "להציג 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 עם שלושה צמתים של קסנדרה הם שלושה. לכן, ערך ברירת המחדל של LOCAL_QUORUM = (3/2) +1 = 2 (הערך מעוגל כלפי מטה למספר שלם).

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

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

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

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

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