เกี่ยวกับ Cassandra Replication Factor และระดับความสม่ําเสมอ

Edge for Private Cloud v. 4.17.09

เกี่ยวกับปัจจัยการทําซ้ำของ Cassandra

Cassandra จัดเก็บข้อมูลจำลองในโหนดหลายโหนดเพื่อให้เกิดความเสถียรและทนต่อข้อบกพร่อง กลยุทธ์การทําซ้ำสําหรับคีย์สเปซ Edge แต่ละรายการจะกําหนดโหนดที่จะวางข้อมูลจำลอง

จำนวนสําเนาทั้งหมดของคีย์สเปซในคลัสเตอร์ Cassandra เรียกว่าปัจจัยการจําลองของคีย์สเปซ ปัจจัยการทําซ้ำ 1 หมายถึงมีสำเนาของแถวแต่ละแถวในคลัสเตอร์ Cassandra เพียง 1 รายการ ตัวคูณการจำลอง 2 หมายความว่ามีสำเนา 2 ชุดของแต่ละแถว โดยที่สำเนาแต่ละรายการจะอยู่ในโหนดที่แตกต่างกัน ข้อมูลจำลองทั้งหมดมีความสำคัญเท่าๆ กัน โดยไม่มีข้อมูลจำลองหลักหรือข้อมูลจำลองหลัก

ในระบบที่ใช้งานจริงซึ่งมีโหนด Cassandra อย่างน้อย 3 โหนดในแต่ละศูนย์ข้อมูล ปัจจัยการจําลองข้อมูลเริ่มต้นสําหรับคีย์สเปซ Edge คือ 3 โดยทั่วไปแล้ว ตัวคูณการทําซ้ำไม่ควรเกินจํานวนโหนด Cassandra ในคลัสเตอร์

ใช้ขั้นตอนต่อไปนี้เพื่อดูสคีมา Cassandra ซึ่งแสดงตัวคูณการทําซ้ำสําหรับคีย์สเปซ Edge แต่ละรายการ

  1. เข้าสู่ระบบโหนด Cassandra
  2. เรียกใช้คำสั่งต่อไปนี้
    > /opt/apigee/apigee-cassandra/bin/cassandra-cli -h $(Hostname -i) <<< "show schema;"

    ตำแหน่งที่ $(ชื่อโฮสต์ -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 คือ 3 สําหรับการติดตั้งที่มีโหนด Cassandra 3 โหนด

หากคุณเพิ่มโหนด Cassandra ลงในคลัสเตอร์ ปัจจัยการทําซ้ำเริ่มต้นจะไม่ได้รับผลกระทบ

ตัวอย่างเช่น หากคุณเพิ่มจำนวนโหนด Cassandra เป็น 6 แต่ยังคงปัจจัยการทําซ้ำไว้ที่ 3 คุณจะไม่สามารถรับประกันได้ว่าโหนด Cassandra ทั้งหมดจะมีสําเนาของข้อมูลทั้งหมด หากโหนดหนึ่งหยุดทำงาน ปัจจัยการทําซ้ำที่สูงขึ้นหมายความว่าข้อมูลในโหนดนั้นๆ มีโอกาสที่จะอยู่ในโหนดที่เหลืออยู่มากกว่า ข้อเสียของปัจจัยการจําลองที่สูงขึ้นคือเวลาในการตอบสนองที่เพิ่มขึ้นในการเขียนข้อมูล

เกี่ยวกับระดับความสอดคล้องของ Cassandra

ระดับความสอดคล้องของ Cassandra หมายถึงจํานวนโหนด Cassandra ขั้นต่ำที่ต้องรับทราบการดําเนินการอ่านหรือเขียนก่อนจึงจะถือว่าการดำเนินการสําเร็จ คุณกำหนดระดับความสอดคล้องให้กับคีย์สเปซ Edge แต่ละรายการได้

เมื่อเชื่อมต่อกับ Cassandra สําหรับการดําเนินการอ่านและเขียน โดยทั่วไปโหนดเซิร์ฟเวอร์ตัวประมวลผลข้อความและการจัดการจะใช้ค่า Cassandra ของ LOCAL_QUORUM เพื่อระบุระดับความสอดคล้องสําหรับคีย์สเปซ อย่างไรก็ตาม มีการกําหนดให้บางคีย์สเปซใช้ระดับความสอดคล้องเป็น 1

การคำนวณค่า LOCAL_QUORUM สำหรับศูนย์ข้อมูลมีดังนี้

LOCAL_QUORUM = (replication_factor/2) + 1 

ดังที่อธิบายไว้ข้างต้น ปัจจัยการทําซ้ำเริ่มต้นสําหรับสภาพแวดล้อมเวอร์ชันที่ใช้งานจริงของ Edge ที่มีโหนด Cassandra 3 โหนดคือ 3 ดังนั้น ค่าเริ่มต้นของ LOCAL_QUORUM = (3/2) +1 = 2 (ค่าปัดเศษลงเป็นจำนวนเต็ม)

เมื่อ LOCAL_QUORUM = 2 นอต Cassandra อย่างน้อย 2 จาก 3 นอตในศูนย์ข้อมูลต้องตอบสนองต่อการดำเนินการอ่าน/เขียนเพื่อให้การดำเนินการสำเร็จ สําหรับคลัสเตอร์ Cassandra 3 โหนด คลัสเตอร์จะทนได้หากโหนดหนึ่งหยุดทํางานต่อศูนย์ข้อมูล

เมื่อระบุระดับความสอดคล้องเป็น LOCAL_QUORUM Edge จะหลีกเลี่ยงเวลาในการตอบสนองที่จำเป็นโดยการตรวจสอบการดำเนินการในศูนย์ข้อมูลหลายแห่ง หากคีย์สเปซใช้ค่า QUORUM ของ Cassandra เป็นระดับความสอดคล้อง ระบบจะต้องตรวจสอบการดำเนินการอ่าน/เขียนในศูนย์ข้อมูลทั้งหมด

วิธีดูระดับความสอดคล้องที่ใช้โดยโหนด Edge Message Processor หรือ Management Server

  1. เข้าสู่ระบบโหนดตัวประมวลผลข้อความ
  2. เปลี่ยนเป็นไดเรกทอรี /opt/apigee/edge-message-processor/conf
    > cd /opt/apigee/edge-message-processor/conf
  3. เพื่อความสอดคล้องในการเขียน
    > grep -ri "write.cinesslevel" *
  4. สําหรับความสอดคล้องในการอ่าน
    > grep -ri "read.consistencylevel" *
  5. เข้าสู่ระบบโหนดเซิร์ฟเวอร์การจัดการ
  6. เปลี่ยนเป็นไดเรกทอรี /opt/apigee/edge-management-server/conf
    > cd /opt/apigee/edge-management-server/conf
  7. ทำขั้นตอน 3 และ 4 ซ้ำ

หากคุณเพิ่มโหนด Cassandra ลงในคลัสเตอร์ ระดับความสอดคล้องจะไม่ได้รับผลกระทบ