Score:0

เวลาแฝงของ DB หลักพร้อมการจำลองแบบข้ามภูมิภาค AWS RDS

ธง mg

ฉันมีการตั้งค่าแอปใน 3 ภูมิภาค (EU, AP, US) และ MySQL RDS หลักอยู่ใน eu-west-1 โดยมีแบบจำลองการอ่านในภูมิภาคอื่นๆ

สิ่งนี้ใช้งานได้ดีสำหรับข้อความค้นหาแบบอ่าน โดยแอปเฉพาะภูมิภาคจะเชื่อมต่อกับ RDS แบบจำลองการอ่านในเครื่องอย่างรวดเร็ว แต่เมื่อแอปของฉันจำเป็นต้องดำเนินการเขียนข้อความค้นหา แอปจะต้องเชื่อมต่อกับฐานข้อมูลหลักใน eu-west-1

เมื่อเขียนไปยังฐานข้อมูลหลักจาก US หรือ AP เวลาแฝงจะสูงมาก โดยปกติจะใช้เวลาประมาณ 2.5 วินาทีในการแทรกให้เสร็จสมบูรณ์

ฉันลำบากมากในการหาข้อมูลใดๆ เกี่ยวกับวิธีเอาชนะสิ่งนี้ Aurora ปรากฏขึ้นมากมายในฟอรัมและแบบฝึกหัดสำหรับฐานข้อมูลส่วนกลาง แต่ต้องมีการจำลองแบบของประเภทอินสแตนซ์ โดย db.r5 เป็นค่าต่ำสุด ซึ่งในไม่ช้าจะกลายเป็นมาก มีราคาแพงเมื่อใช้งานหลายอินสแตนซ์

มีใครประสบปัญหานี้กับการเขียนข้ามภูมิภาคช้าไปยังฐานข้อมูลหลักหรือไม่ การเพียร์ VPC จะช่วยเร่งความเร็วนี้หรือไม่

Wilson Hauck avatar
jp flag
ผลลัพธ์ของ SELECT @@binlog_format คืออะไร; ? ประเภทอินสแตนซ์ของคุณคืออะไร? เหมือนกันทุกภาค? ผลลัพธ์ของ SELECT @@version คืออะไร; ?
Score:0
ธง gp
Tim

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

การเพียร์ VPC นั้นคุ้มค่ากับการยิงอย่างแน่นอน การรับส่งข้อมูลยังคงอยู่บนแกนหลัก AWS ซึ่งควรลดเวลาแฝงลงเล็กน้อย ฉันไม่รู้ว่ามันจะช่วยได้มากแค่ไหน พื้นที่ทั้งสามนี้ห่างกัน 200 - 300ms ping ดังนั้นคุณจะมีความล่าช้าอยู่เสมอ

ฉันสงสัยว่าการสนทนาระหว่างไคลเอ็นต์และฐานข้อมูลเป็นการร้องขอหลายรายการสำหรับการแทรกเพียงครั้งเดียว เช่น สร้างการเชื่อมต่อ เชื่อมต่อกับฐานข้อมูลเฉพาะ แทรก คอมมิต ปิด หากเป็นกรณีนี้ การลดเวลาแฝงอาจช่วยได้ แต่การตัดขั้นตอนบางอย่างออกไปนั้นสำคัญกว่า คุณกำลังใช้การเชื่อมต่อร่วมกันเพื่อให้การเชื่อมต่อเปิดอยู่หรือไม่ ฉันสงสัยว่าการเพียร์ VPC และการเพิ่มประสิทธิภาพทั่วไปนี่จะเป็นทางออกที่ดีกว่าแนวคิดใดแนวคิดหนึ่งด้านล่าง

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

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

อีกทางเลือกหนึ่งอาจเป็นการแบ่งส่วนย่อยข้อมูลผู้ใช้เฉพาะบนฐานข้อมูลเฉพาะ นั่นจะทำให้ตรรกะแอปพลิเคชันของคุณซับซ้อนขึ้น

mg flag
ขอบคุณมาก @Tim เคล็ดลับดีๆ สำหรับฉันในการทำวิจัยเพิ่มเติมเกี่ยวกับ....

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา