CAP Theorem และ MySQL

Sep 10 2020

มี CAP Theorem: R + W> N สมมติว่าฉันมี W = 1 (master), R = 6 (slaves), N = 6 ดังนั้นทาสหนึ่งคนจึงสามารถเขียนและอ่านได้ ตามที่ทฤษฎีบทกล่าวว่าเราสามารถมั่นใจได้ว่ามีความสอดคล้องกันอย่างมาก (เราจะได้ค่าใหม่ล่าสุดเสมอ)

ฉันอ่านพบว่าการจัดเก็บข้อมูลสามารถตรวจสอบเวอร์ชันและส่งคืนเวอร์ชันใหม่ล่าสุดได้ แต่ในความเป็นจริงแล้วการใช้ MySQL หรือไม่? หรือบางทีเราต้องใช้คนกลางแบบไหน? CAP theorem ใช้กับ MySQL ได้อย่างไร

คำตอบ

1 RolandoMySQLDBA Sep 10 2020 at 19:04

สิ่งที่คุณกำลังเสนอไม่ใช่ CAP Theorem เว้นแต่ว่าคลัสเตอร์จะเป็นสถาปัตยกรรมที่ไม่ต้องแชร์อะไรเลย โปรดทราบว่า CAP Theorem มาจากโพสต์เก่าของฉันจากJan 01, 2013: ความสอดคล้องในทฤษฎีบทกรดและ CAP เหมือนกันหรือไม่

หมวก

  • ความสม่ำเสมอ (โหนดทั้งหมดมีข้อมูลเดียวกันผ่านความสอดคล้องในที่สุด)
  • ความพร้อมใช้งาน
  • Partition-Tolerance: ระบบยังคงทำงานต่อไปแม้ข้อความบางส่วนของระบบจะสูญหายหรือล้มเหลวโดยพลการ

แต่ละโหนดจะมีสำเนาของชุดข้อมูลทั้งหมด คลัสเตอร์ DB ที่กำหนดจะต้องได้รับการสนับสนุนความสอดคล้องในที่สุดเช่นมีคลัสเตอร์การสนับสนุน ACID Compliance กว้าง

คำถามที่เกิดขึ้นจริงของคุณ

แต่ในความเป็นจริงแล้วการใช้ MySQL หรือไม่? หรือบางทีเราต้องใช้คนกลางแบบไหน? CAP theorem ใช้กับ MySQL ได้อย่างไร

การตั้งค่า MySQL ที่ทำงานบนCAP Theoremมีดังนี้:

  • คลัสเตอร์ InnoDB
  • MariaDB Galera คลัสเตอร์
  • คลัสเตอร์ Percona XtraDB

คนกลางที่ดีที่สุดของคุณ ??? หากข้อมูลที่คุณเขียนมีความสำคัญและจำเป็นต้องมีให้อ่านข้อมูลจากอาจารย์ที่คุณเขียน ในการตั้งค่าคลัสเตอร์ข้างต้นโหนดใด ๆ สามารถเป็น Master ได้ หากข้อมูลถูกเขียนบน Master หนึ่งตัวข้อมูลทั้งหมดควรมีและพร้อมที่จะอ่านกลับหากโหนดทั้งหมดในคลัสเตอร์รัน COMMIT บนธุรกรรมที่กำหนดเดียวกันนั้น

หากคุณมีทาสติดอยู่กับ Masters เหล่านี้ทาสแต่ละคนต้องรอ Master COMMIT เพื่อให้ข้อมูลถูกจำลองและปรากฏบนทาส