OpenAI ขยาย PostgreSQL รองรับผู้ใช้ ChatGPT 800 ล้านคน

PostgreSQL เป็นระบบข้อมูลสำคัญที่อยู่เบื้องหลังผลิตภัณฑ์หลักอย่าง ChatGPT และ OpenAI API ซึ่งเดิมทีถูกพัฒนาโดยทีมนักวิทยาศาสตร์จาก University of California, Berkeley

ปัจจุบัน พวกเขาใช้ Azure PostgreSQL flexible server instance หลัก พร้อมด้วย read replicas เกือบ 50 ตัว กระจายอยู่หลายภูมิภาคทั่วโลก เพื่อรองรับการใช้งานมหาศาล

รอยร้าวในการออกแบบเริ่มต้นของเรา

เคยมีเหตุการณ์ SEV (Severity) ที่เกิดจาก Postgres overload ซึ่งมักมีรูปแบบเดียวกัน เช่น การขาดหายของ cache ที่ทำให้เกิดโหลดสูง การ Join ที่ซับซ้อนทำให้ CPU เต็ม หรือการเขียนข้อมูลจำนวนมากจากการเปิดตัวฟีเจอร์ใหม่

การปรับขนาด PostgreSQL สำหรับ QPS นับล้าน

เพื่อลดแรงกดดันในการเขียน พวกเขาได้ย้ายภาระงานที่รองรับการแบ่งส่วน (shardable) ไปยังระบบที่แบ่งส่วน เช่น Azure Cosmos DB และปรับตรรกะของแอปพลิเคชันเพื่อลดการเขียนที่ไม่จำเป็น

Connection pooling

แต่ละ read replica มีการติดตั้ง Kubernetes deployment ที่รัน PgBouncer pods หลายตัว โดยมี Kubernetes Service เดียวที่ทำหน้าที่ Load Balance ทราฟฟิกไปยัง pods เหล่านั้น

ผลลัพธ์และเส้นทางข้างหน้า

พวกเขาเพิ่ม read replicas เกือบ 50 ตัว โดยรักษา Replication lag ใกล้ศูนย์ และรักษาการอ่านค่าที่มี Latency ต่ำในภูมิภาคที่กระจายตัวทั่วโลก พร้อมสร้างส่วนเผื่อสำหรับรองรับการเติบโตในอนาคต

ศัพท์ที่ควรรู้

  • PostgreSQL – ระบบจัดการฐานข้อมูลที่ใช้เก็บและจัดการข้อมูลอย่างมีประสิทธิภาพ
  • Read replicas – สำเนาของฐานข้อมูลที่ใช้สำหรับอ่านข้อมูล ทำให้ลดภาระของเซิร์ฟเวอร์หลัก
  • Azure PostgreSQL flexible server instance – บริการฐานข้อมูล PostgreSQL ที่โฮสต์บนคลาวด์ Azure
  • Kubernetes deployment – ระบบจัดการและปรับใช้แอปพลิเคชันที่ทำงานบนคอนเทนเนอร์
  • QPS (Queries Per Second) – จำนวนคำสั่งค้นหาที่ระบบฐานข้อมูลรองรับได้ในหนึ่งวินาที

ที่มา: OpenAI

Leave a Comment