การจำลองแบบข้ามภูมิภาคใน MySQL ซึ่งเป็นวิธีการคัดลอกข้อมูลแบบอะซิงโครนัสจากฐานข้อมูลหลักในภูมิภาคหนึ่งทางภูมิศาสตร์ไปยังฐานข้อมูลแบบจำลองหนึ่งครั้งหรือมากกว่าในภูมิภาคที่แตกต่างกันส่งผลกระทบต่อประสิทธิภาพผ่านปัจจัยต่าง ๆ ที่เชื่อมโยงกับความล่าช้าของเครือข่าย
เวลาแฝงเครือข่ายและความล่าช้าในการจำลอง
ผลกระทบด้านประสิทธิภาพหลักเกิดขึ้นจากความล่าช้าของเครือข่ายที่เพิ่มขึ้นระหว่างภูมิภาค เนื่องจากการจำลองแบบข้ามภูมิภาคขึ้นอยู่กับการส่งเหตุการณ์บันทึกไบนารีที่มีการเปลี่ยนแปลงข้อมูลผ่านการเชื่อมโยงเครือข่ายทางไกลระยะห่างทางกายภาพอาจทำให้เกิดความล่าช้าในการแพร่กระจายอย่างมีนัยสำคัญ สิ่งนี้นำไปสู่ความล่าช้าในการจำลองแบบที่เพิ่มขึ้นซึ่งแบบจำลองอยู่ด้านหลังหลักในการใช้การเปลี่ยนแปลง ความล่าช้าในการจำลองแบบอาจส่งผลกระทบต่อความสอดคล้องของการอ่านในแอปพลิเคชันที่อาศัยข้อมูลล่าสุดจากแบบจำลองและสามารถเพิ่มเวลาการล้มเหลวในสถานการณ์การกู้คืนภัยพิบัติ
ความล่าช้าในการจำลองแบบเกิดขึ้นเนื่องจากหลายสาเหตุ:
- เซิร์ฟเวอร์หลักไม่ส่งการเปลี่ยนแปลงอย่างรวดเร็วเพียงพอ
- เครือข่ายล่าช้าในการถ่ายโอนการเปลี่ยนแปลง
- เซิร์ฟเวอร์แบบจำลองไม่สามารถใช้การเปลี่ยนแปลงได้อย่างรวดเร็ว
ความล่าช้าที่สังเกตได้ทั้งหมดเกิดจากทั้งเครือข่ายและเวลาแฝงการประมวลผล เครื่องมือตรวจสอบตัวชี้วัดการติดตามเช่นความล่าช้าของเครือข่ายและความล่าช้าในการวินิจฉัยคอขวด
การจำลองเซิร์ฟเวอร์ผลกระทบและการใช้ทรัพยากร
ในด้านการจำลองการใช้การเปลี่ยนแปลงจากหลักเกี่ยวข้องกับงาน I/O และ CPU ซึ่งอาจส่งผลกระทบต่อประสิทธิภาพโดยรวมของแบบจำลองโดยเฉพาะอย่างยิ่งหากมันเป็นที่จัดการการอ่านแอปพลิเคชันอ่านพร้อมกัน โหลดการจำลองแบบสูงสามารถนำไปสู่การโต้แย้งและความอิ่มตัวของทรัพยากรทำให้เวลาตอบสนองแบบสอบถามช้าลงในแบบจำลอง
การใช้เธรดการจำลองแบบแบบขนานบนแบบจำลองสามารถบรรเทาความล่าช้าของแอปพลิเคชันบางส่วนโดยการใช้ธุรกรรมหลายรายการพร้อมกันปรับปรุงการทำซ้ำ นอกจากนี้การกำหนดค่าตัวเลือกเช่น Flushing ประสิทธิภาพสูง (การปรับ `innoDB_FLUSH_LOG_AT_TRX_COMMIT` และ` พารามิเตอร์ `SYNC_BINLOG` พารามิเตอร์) สามารถปรับปรุงการเขียนและการจำลองแบบใช้ประสิทธิภาพ
ส่งผลกระทบต่อประสิทธิภาพของเซิร์ฟเวอร์หลัก
เซิร์ฟเวอร์หลักยังมีผลกระทบโหลดเนื่องจากการจำลองแบบ มันจะต้องเขียนการเปลี่ยนแปลงทั้งหมดในบันทึกไบนารีสำหรับแบบจำลองดาวน์สตรีมซึ่งเป็นค่าใช้จ่ายเพิ่มเติมที่ด้านบนของการประมวลผลธุรกรรมปกติ ด้วยการเชื่อมต่อแบบจำลองจำนวนมากโดยเฉพาะอย่างยิ่งข้ามภูมิภาคที่ปริมาณงานและความน่าเชื่อถือของเครือข่ายแตกต่างกันไปหลัก ๆ อาจมีประสบการณ์การใช้ทรัพยากรที่เพิ่มขึ้นเพื่อรักษาสตรีมการจำลองแบบ
วิธีหนึ่งในการบรรเทานี้คือลำดับชั้นการจำลองแบบซึ่งการจำลองแบบหลักไปยังแบบจำลองกลางเดียวซึ่งจากนั้นแฟน ๆ ออกไปเป็นแบบจำลองเพิ่มเติมลดภาระในหลัก
การกระจายเวิร์กโหลดและความสามารถในการปรับขนาด
การจำลองแบบข้ามภูมิภาครองรับการปรับขนาดการอ่านปริมาณงานที่ใกล้เคียงกับผู้ใช้ในภูมิภาคทั่วโลกที่แตกต่างกันโดยการให้แบบจำลองการอ่านใกล้กับตำแหน่งของพวกเขาปรับปรุงเวลาแฝงของผู้ใช้ปลายทาง อย่างไรก็ตามการเขียนเวิร์กโหลดยังคงมาบรรจบกันในอินสแตนซ์หลักซึ่งอาจกลายเป็นคอขวด
การทำธุรกรรมขนาดใหญ่เกี่ยวกับหลักที่อัปเดตแถวจำนวนมากอาจทำให้เกิดการเพิ่มขึ้นของข้อมูลการจำลองแบบซึ่งนำไปสู่การระเบิดของการจำลองแบบใช้งานบนแบบจำลองและทำให้เกิดความล่าช้าในการจำลองแบบ การแบ่งธุรกรรมขนาดใหญ่เป็นแบตช์ขนาดเล็กจะช่วยลดความเครียดในการจำลองแบบ
Schema และข้อควรพิจารณาในการออกแบบการสืบค้น
ตารางที่ไม่มีคีย์หลักหรือการดำเนินการ DDL หนักสามารถลดประสิทธิภาพการจำลองแบบหรือทำให้เกิดล็อคแบบเอกสิทธิ์เฉพาะบุคคล โดยทั่วไปแนะนำให้ใช้การจำลองแบบตามแถวซึ่งต้องใช้คีย์หลักเพื่อประสิทธิภาพ
ระดับการแยกแบบสอบถามในแบบจำลองยังส่งผลกระทบต่อความเร็วแอปพลิเคชันการจำลองแบบด้วยระดับการแยกที่ต่ำกว่า (เช่น `อ่านมุ่งมั่น`) โดยทั่วไปจะช่วยให้สามารถใช้เหตุการณ์การจำลองแบบได้เร็วกว่าระดับที่สูงกว่าที่ล็อคนานขึ้น
เครือข่ายและการพิจารณาค่าใช้จ่าย
การจำลองแบบข้ามภูมิภาคเกี่ยวข้องกับการถ่ายโอนข้อมูลข้ามเครือข่ายผู้ให้บริการคลาวด์ซึ่งอาจมีค่าใช้จ่ายและข้อ จำกัด แบนด์วิดท์ สิ่งนี้จะต้องมีการพิจารณาในการออกแบบและสามารถ จำกัด ความเร็วและความถี่ในการจำลองทางอ้อม
สรุปผลกระทบด้านประสิทธิภาพ
- เพิ่มความล่าช้าในการจำลองแบบเนื่องจากระยะทางกายภาพและเวลาแฝงเครือข่าย
- การใช้ทรัพยากรที่สูงขึ้นเกี่ยวกับการบันทึกแบบไบนารีและแบบจำลองสำหรับการใช้การเปลี่ยนแปลง
- การลดลงของประสิทธิภาพการสืบค้นที่มีศักยภาพในแบบจำลองหากการจำลองแบบมีความเข้มข้นของทรัพยากร
- โหลดบาลานซ์ผ่านลำดับชั้นการจำลองแบบสามารถลดคอขวดได้
- ผลกระทบของการทำธุรกรรมขนาดใหญ่และการออกแบบสคีมาต่อประสิทธิภาพการจำลองแบบ
- แลกเปลี่ยนกับต้นทุนการถ่ายโอนข้อมูลและปริมาณงานในสภาพแวดล้อมคลาวด์