CAP Theorem และ MySQL
มี CAP Theorem: R + W> N สมมติว่าฉันมี W = 1 (master), R = 6 (slaves), N = 6 ดังนั้นทาสหนึ่งคนจึงสามารถเขียนและอ่านได้ ตามที่ทฤษฎีบทกล่าวว่าเราสามารถมั่นใจได้ว่ามีความสอดคล้องกันอย่างมาก (เราจะได้ค่าใหม่ล่าสุดเสมอ)
ฉันอ่านพบว่าการจัดเก็บข้อมูลสามารถตรวจสอบเวอร์ชันและส่งคืนเวอร์ชันใหม่ล่าสุดได้ แต่ในความเป็นจริงแล้วการใช้ MySQL หรือไม่? หรือบางทีเราต้องใช้คนกลางแบบไหน? CAP theorem ใช้กับ MySQL ได้อย่างไร
คำตอบ
สิ่งที่คุณกำลังเสนอไม่ใช่ 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 เพื่อให้ข้อมูลถูกจำลองและปรากฏบนทาส