อะไรคือข้อเสียของการใช้ Galera Cluster แทน Master / Slave Replication


13

อะไรคือข้อเสียของการใช้ Galera Cluster แทน Master / Slave Replication ปกติ? เวลาหน่วง 0 ทาสของ Galera, การจำลองแบบซิงโครนัสและไม่มีจุดความล้มเหลวจุดเดียวจึงน่าดึงดูดใจมากแล้วทำไมกลุ่ม Galera ถึงไม่ธรรมดา

คำตอบ:


16

เพราะเช่นเดียวกับการเพิ่มประสิทธิภาพอื่น ๆ มันไม่เหมาะกับทุกภาระงาน

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

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

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


ขอบคุณ Bill ฉันได้อ่านการนำเสนอ Percona ของคุณมาระยะหนึ่งแล้ว
Sam

3
ข้อเสียเปรียบอีกประการหนึ่งคือการมีโหนดผู้บริจาคปิดตัวเองและใช้ในการคัดลอก (ผ่าน xtrabackup, rsync, mysqldump) ไปยังโหนดใด ๆ ที่แนะนำให้กับคลัสเตอร์ทำให้เหลือโหนดที่เหลืออยู่ในคลัสเตอร์เพื่อทำการยกของหนักจนกระทั่งโหนดใหม่นั้นซิงค์กัน มันไม่ใช่ข้อเสียเปรียบสำหรับฐานข้อมูลขนาดเล็กหรือขนาดกลาง
RolandoMySQLDBA

1
@RolandoMySQLDBA วิธี SST เช่น xtrabackup หลีกเลี่ยงการล็อคผู้บริจาคอย่างแม่นยำ แม้ว่ามันจะเป็นจริงในกรณีใด ๆ ผู้บริจาคจะมีประสิทธิภาพลดลงหากฐานข้อมูลมีขนาดใหญ่
jynus

3
@jynus ปัญหาไม่ได้ล็อกอยู่บนโหนดผู้บริจาคแต่โหนดการรับนั้นออฟไลน์และไม่พร้อมใช้งานสำหรับการสอบถามใด ๆ ในขณะที่ SST กำลังดำเนินการอยู่ ดังนั้นหากคุณใช้คลัสเตอร์สำหรับการทำโหลดบาลานซ์เคียวรีเคียวรีที่จะไปยังโหนดที่รับจะต้องถูกส่งไปยังโหนดอื่นจนกว่าจะทำ SST
Bill Karwin

2
ในกรณีที่บุคคลอื่นกำลังค้นหาตัวเลือกที่ Bill อ้างถึงคือwsrep_causal_reads... ตั้งค่าเป็น ON พร้อมSET GLOBAL wsrep_causal_reads = 'ON';รับการเลือกเพื่อรอจนกว่าชุดการเขียนทั้งหมดจะเสร็จสิ้น
ลุคลูกพี่ลูกน้อง

2

ข้อเสียของ Galera ได้แก่ :

  • การสนับสนุนเอ็นจิ้นการจัดเก็บ: จำกัด เฉพาะ InnoDB / XtraDB (รวมถึงการสนับสนุนการทดลองสำหรับ MyISAM)
  • รองรับระบบปฏิบัติการ: เฉพาะ OSE ของ Linux / Unix

นอกจากนี้ยังมีข้อ จำกัด บางประการที่ควรสังเกต แต่อาจแก้ไขได้:

  • โดยค่าเริ่มต้น (การแยกคำสั่งทั้งหมด) การดำเนินงาน DDL จะบล็อกทั้งคลัสเตอร์จนกว่าจะเสร็จสมบูรณ์
  • ทุกตารางจะต้องมีคีย์หลักที่ชัดเจนไม่ว่าจะเป็นคอลัมน์เดียวหรือหลายคอลัมน์
  • การล็อก: การล็อคบางชนิดไม่ได้รับการสนับสนุน

สำหรับข้อมูลเพิ่มเติมโปรดดูรายละเอียดได้ที่Codership (และที่นี่เกี่ยวกับการบล็อก DDL) MariaDBและPercona

แก้ไข:โปรดทราบด้วยว่าบางคนยืนยันว่ากลุ่มฐานข้อมูลที่เชื่อมโยงกันอย่างแน่นหนาเช่น Galera ไม่ควรมีโหนดกระจายทางภูมิศาสตร์เพราะปัญหาที่เกิดจากความไม่น่าเชื่อถือของเลเยอร์เครือข่าย ต้องใช้วิธีแก้ปัญหาแบบอะซิงโครนัสแทนในกรณีเหล่านี้ ดู: วิธีที่ไม่ต้องทำ MySQL สูงมีจำหน่าย: การกระจายทางภูมิศาสตร์โหนดกับ Galera ตามการจำลองแบบในทางที่ผิด อย่างไรก็ตามบล็อก Galera ระบุว่า (2015):

กรณีสำหรับการสร้างกลุ่มฐานข้อมูลกระจายทางภูมิศาสตร์นั้นแข็งแกร่ง วิธีการทำซ้ำของ Galera และคุณสมบัติเฉพาะในผลิตภัณฑ์ทำให้สามารถสร้างกลุ่ม Galera ที่ครอบคลุมศูนย์ข้อมูลหลายแห่งและผู้ใช้หลายคนมีกลุ่มดังกล่าวในการผลิตอยู่แล้ว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.