Cassandra Archiเทคเจอร์และปัจจัยการจำลองแบบ

Cassandra ได้รับการออกแบบมาให้รับมือ ข้อมูลขนาดใหญ่. Cassandraคุณสมบัติหลักของคือการจัดเก็บข้อมูลบนหลายโหนดโดยไม่มีจุดล้มเหลวเพียงจุดเดียว

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

Cassandra จัดเก็บข้อมูลบนโหนดที่แตกต่างกันด้วยสถาปัตยกรรมแบบกระจายแบบเพียร์ทูเพียร์

โหนดทั้งหมดแลกเปลี่ยนข้อมูลกันโดยใช้ โปรโตคอลการนินทา- การนินทาเป็นโปรโตคอลใน Cassandra โดยที่โหนดสามารถสื่อสารระหว่างกันได้

องค์ประกอบของ Cassandra Archiเทคเจอร์

มีส่วนประกอบดังต่อไปนี้ใน Cassandra Archiเทคเจอร์:

Cassandra Archiเทคเจอร์
Cassandra Archiแผนภาพเทคเจอร์

โหนด

โหนดเป็นสถานที่เก็บข้อมูล เป็นส่วนประกอบพื้นฐานของ Cassandra.

ศูนย์ข้อมูล

ชุดของโหนดเรียกว่าศูนย์ข้อมูล โหนดจำนวนมากถูกจัดประเภทเป็นศูนย์ข้อมูล

Cluster

คลัสเตอร์เป็นแหล่งรวมของศูนย์ข้อมูลหลายแห่ง

บันทึกการกระทำ

การเขียนทุกครั้งจะถูกเขียนลงในบันทึก Commit บันทึก Commit จะถูกใช้เพื่อกู้คืนจากความผิดพลาด

Mem-ตาราง

หลังจากที่ข้อมูลถูกเขียนใน Commit log ข้อมูลจะถูกเขียนใน Mem-table ข้อมูลถูกเขียนลงใน Mem-table ชั่วคราว

SSTable

เมื่อ Mem-table ถึงเกณฑ์ที่กำหนด ข้อมูลจะถูกล้างไปยังไฟล์ดิสก์ SSTable

การจำลองข้อมูลใน Cassandra

เนื่องจากปัญหาฮาร์ดแวร์อาจเกิดขึ้นได้หรือลิงก์อาจล่มได้ตลอดเวลาระหว่างการประมวลผลข้อมูล จึงจำเป็นต้องมีวิธีแก้ไขในการสำรองข้อมูลเมื่อเกิดปัญหา ดังนั้นข้อมูลจึงถูกจำลองเพื่อให้แน่ใจว่าไม่มีจุดล้มเหลวแม้แต่จุดเดียว

Cassandra วางการจำลองข้อมูลบนโหนดที่แตกต่างกันโดยพิจารณาจากปัจจัยทั้งสองนี้

  • สถานที่ที่จะวางแบบจำลองต่อไปจะถูกกำหนดโดย กลยุทธ์การจำลองแบบ.
  • ในขณะที่จำนวนเรพลิกาทั้งหมดที่วางอยู่บนโหนดที่แตกต่างกันจะถูกกำหนดโดย ปัจจัยการจำลองแบบ.

ปัจจัยการจำลองแบบหนึ่งตัวหมายความว่ามีสำเนาข้อมูลเพียงชุดเดียว ในขณะที่ปัจจัยการจำลองแบบสามตัวหมายความว่ามีสำเนาข้อมูลสามชุดบนโหนดที่แตกต่างกันสามโหนด

เพื่อให้แน่ใจว่าไม่มีจุดผิดพลาดเพียงจุดเดียว ปัจจัยการจำลองต้องเป็นสาม

มีกลยุทธ์การจำลองแบบสองประเภท Cassandra.

SimpleStrategy ใน Cassandra

กลยุทธ์ง่ายๆ ใช้เมื่อคุณมีศูนย์ข้อมูลเพียงแห่งเดียว SimpleStrategy จะวางสำเนาแรกบนโหนดที่เลือกโดยตัวแบ่งพาร์ติชัน หลังจากนั้น สำเนาที่เหลือจะถูกวางในทิศทางตามเข็มนาฬิกาในวงแหวนโหนด

นี่คือการแสดงภาพของ SimpleStrategy:

SimpleStrategy ใน Cassandra
SimpleStrategy ใน Cassandra

เครือข่ายโทโพโลยีกลยุทธ์ใน Cassandra

กลยุทธ์โทโพโลยีเครือข่าย ใช้เมื่อคุณมีศูนย์ข้อมูลมากกว่า 2 แห่ง ใน NetworkTopologyStrategy จะมีการตั้งค่าสำเนาสำหรับศูนย์ข้อมูลแต่ละแห่งแยกกัน NetworkTopologyStrategy จะวางสำเนาในทิศทางตามเข็มนาฬิกาในวงแหวนจนกว่าจะถึงโหนดแรกในแร็คอื่น กลยุทธ์นี้จะพยายามวางสำเนาในแร็คที่แตกต่างกันในศูนย์ข้อมูลเดียวกัน

นี่เป็นเพราะสาเหตุที่บางครั้งเกิดความล้มเหลวหรือปัญหาในแร็คได้ จากนั้นเรพลิกาบนโหนดอื่นก็สามารถให้ข้อมูลได้

นี่คือการแสดงภาพของกลยุทธ์โทโพโลยีเครือข่าย:

เครือข่ายโทโพโลยีกลยุทธ์ใน Cassandra
เครือข่ายโทโพโลยีกลยุทธ์ใน Cassandra

เขียน Operaอยู่ใน Cassandra

ผู้ประสานงานส่งคำขอเขียนไปยังเรพลิกา หากแบบจำลองทั้งหมดหมดลง พวกเขาจะได้รับคำขอเขียนโดยไม่คำนึงถึงระดับความสอดคล้องกัน

ระดับความสม่ำเสมอ กำหนดจำนวนโหนดที่จะตอบกลับพร้อมกับการรับทราบความสำเร็จ

โหนดจะตอบกลับพร้อมกับการรับทราบความสำเร็จหากข้อมูลถูกเขียนไปยังบันทึกการคอมมิตสำเร็จและ memTable.

ตัวอย่างเช่น ในศูนย์ข้อมูลเดียวที่มีปัจจัยการจำลองเท่ากับสาม แบบจำลองสามรายการจะได้รับคำขอเขียน หากระดับความสอดคล้องเป็นหนึ่ง มีเพียงแบบจำลองเดียวเท่านั้นที่จะตอบกลับพร้อมกับการรับทราบความสำเร็จ และอีกสองแบบจำลองที่เหลือจะยังคงเฉยๆ

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

ต่อไปนี้จะอธิบายว่ากระบวนการเขียนเกิดขึ้นได้อย่างไร Cassandra,

  1. เมื่อคำขอเขียนมาถึงโหนด ก่อนอื่น โหนดจะบันทึกลงในบันทึกการคอมมิต
  2. แล้วก็ Cassandra เขียนข้อมูลลงในตาราง mem ข้อมูลที่เขียนในตาราง mem ในแต่ละคำขอเขียนยังเขียนในบันทึกการคอมมิตแยกกันด้วย Mem-table เป็นข้อมูลที่เก็บไว้ชั่วคราวในหน่วยความจำในขณะที่บันทึก Commit จะบันทึกบันทึกธุรกรรมเพื่อการสำรองข้อมูล
  3. เมื่อ mem-table เต็ม ข้อมูลจะถูกล้างไปยังไฟล์ข้อมูล SSTable
เขียน Operaอยู่ใน Cassandra
เขียน Operaอยู่ใน Cassandra

อ่าน Operaอยู่ใน Cassandra

คำขออ่านมีสามประเภทที่ผู้ประสานงานส่งไปยังเรพลิกา

  1. คำขอโดยตรง
  2. คำขอสรุป
  3. อ่านคำขอซ่อม

ผู้ประสานงานส่งคำขอโดยตรงไปยังหนึ่งในแบบจำลอง หลังจากนั้น ผู้ประสานงานจะส่งคำขอสรุปไปยังจำนวนแบบจำลองที่ระบุโดยระดับความสอดคล้อง และตรวจสอบว่าข้อมูลที่ส่งคืนเป็นข้อมูลที่อัปเดตหรือไม่

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

สรุป

  • บทช่วยสอนนี้จะอธิบาย Cassandra สถาปัตยกรรมภายในและวิธีการ Cassandra จำลอง เขียน และอ่านข้อมูลในขั้นตอนต่างๆ
  • นอกจากนี้ยังอธิบายเกี่ยวกับวิธีการอีกด้วย Cassandra รักษาระดับความสม่ำเสมอตลอดกระบวนการ
  • องค์ประกอบของ Cassandra Archiเทคโนโลยี: โหนด, ศูนย์ข้อมูล, Cluster, บันทึกคอมมิต, ตาราง Mem, SSTable
  • ปัจจัยการจำลองแบบหนึ่งตัวหมายความว่ามีสำเนาข้อมูลเพียงชุดเดียว ในขณะที่ปัจจัยการจำลองแบบสามตัวหมายความว่ามีสำเนาข้อมูลสามชุดบนโหนดที่แตกต่างกันสามโหนด
  • SimpleStrategy จะใช้เมื่อคุณมีศูนย์ข้อมูลเพียงแห่งเดียว
  • NetworkTopologyStrategy ใช้เมื่อคุณมีศูนย์ข้อมูลมากกว่าสองแห่ง