5 คะแนน โดย kimmachinegun 2025-03-17 | ยังไม่มีความคิดเห็น | แชร์ทาง WhatsApp

เพื่อปรับปรุง elasticity ของ Luft ซึ่งเป็นฐานข้อมูลที่พัฒนาขึ้นเอง ทีมได้แบ่งปันประสบการณ์การสร้าง cost-based autoscaler ที่ใช้ query history

  • ในงานก่อนหน้านี้ได้เปลี่ยนมาใช้สถาปัตยกรรม Shared Storage แล้ว แต่เพื่อให้เกิดผลลัพธ์ที่ใช้งานได้จริง ยังจำเป็นต้องมีระบบ auto-scaling ที่มีประสิทธิภาพ
  • ทีมย้ายออกจาก Kubernetes ไปสู่รูปแบบคลัสเตอร์แบบ self-managed ที่ใช้ AWS SDK และนำวิธีการ resume อินสแตนซ์ที่หยุดอยู่กลับมาใช้ ทำให้ลดเวลา scaling ลงเหลือระดับประมาณ 10 วินาที
  • แทนที่จะใช้แนวทาง auto-scaling แบบเดิมที่พึ่งพา metric ที่เกิดตามหลัง เช่น การใช้ CPU/หน่วยความจำ ทีมได้พัฒนาโมเดลคาดการณ์ต้นทุนที่ใช้ query history
  • ผ่านการทำ query canonicalization เพื่อระบุ query ที่คล้ายกัน และสร้าง cost function ที่คำนวณต้นทุนจากประวัติของ query ทำให้คาดการณ์ทรัพยากรได้อย่างแม่นยำ
  • ระบบสามารถจัดสรรทรัพยากรเฉพาะเมื่อจำเป็นโดยไม่ต้อง overprovisioning ช่วยลดค่าใช้จ่ายของอินสแตนซ์ได้ประมาณ 40% และสร้างระบบที่ยืดหยุ่นพอจะรองรับ query หนักได้

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น