เบื้องหลัง OpenAI จูน PostgreSQL ยังไง ให้รับมือผู้ใช้ ChatGPT 800 ล้านคน

OpenAI เผยเทคนิคการสเกล PostgreSQL แบบ Single Primary ให้รองรับผู้ใช้งาน ChatGPT กว่า 800 ล้านคน โดยเน้นการย้ายงานเขียนหนักๆ ไป Azure Cosmos DB, การจูน Query, ใช้ PgBouncer จัดการ Connection และระบบ Caching ที่ชาญฉลาด จนทำ Uptime ได้ถึง 99.999%
เชื่อว่าหลายคนคงสงสัยว่าแพลตฟอร์มระดับโลกอย่าง ChatGPT ที่มีผู้ใช้งานกว่า 800 ล้านคน เขาบริหารจัดการ Database กันอย่างไร ล่าสุด Bohan Zhang ทีมงาน Engineering ของ OpenAI ได้ออกมาเปิดเผยเบื้องหลังการทำงานของระบบที่น่าสนใจมาก โดยระบุว่าหัวใจสำคัญที่ขับเคลื่อนระบบทั้งหมดคือ PostgreSQL ที่ต้องรับมือกับโหลดงานที่โตขึ้นกว่า 10 เท่าในปีที่ผ่านมา
สิ่งที่ทำให้วงการ Engineering ต้องเลิกคิ้วคือ OpenAI ใช้สถาปัตยกรรมแบบ Single Primary (มีตัวเขียนหลักแค่ตัวเดียว) บน Azure PostgreSQL Flexible Server ทำงานร่วมกับ Read Replicas (ตัวอ่านข้อมูล) อีกเกือบ 50 ตัวกระจายอยู่ทั่วโลก ซึ่งเดิมทีหลายคนมองว่าสถาปัตยกรรมแบบนี้ไม่น่าจะรับมือกับ Traffic ระดับ Global ไหว แต่พวกเขาก็พิสูจน์แล้วว่าทำได้ด้วยการปรับจูนอย่างหนักหน่วง
แน่นอนว่าเส้นทางไม่ได้โรยด้วยกลีบกุหลาบ ปัญหาคลาสสิกของ PostgreSQL คือระบบ MVCC (Multiversion Concurrency Control) ที่มักจะทำงานได้ไม่ดีนักเมื่อเจอกับงานเขียนข้อมูลหนักๆ (Write-heavy) จนทำให้เกิดอาการ Database บวมและช้า ทีมงานจึงแก้เกมด้วยการย้ายงานประเภทที่ต้องเขียนข้อมูลเยอะๆ ไปไว้บนระบบอื่นอย่าง Azure Cosmos DB แทน และล็อกไม่ให้มีการสร้างตารางใหม่บน PostgreSQL ตัวหลัก เพื่อรักษาพื้นที่ไว้สำหรับงานอ่านข้อมูล (Read-heavy) เป็นหลัก
เทคนิคการปรับจูนของพวกเขานั้นเรียกได้ว่ารีดประสิทธิภาพกันสุดหยด ตั้งแต่การกำจัด Query ที่ซับซ้อน (เคยเจอเคส Join 12 ตารางจนระบบเกือบล่มมาแล้ว), การใช้ PgBouncer เข้ามาช่วยจัดการ Connection Pool ซึ่งลดเวลาการเชื่อมต่อจาก 50 ms เหลือแค่ 5 ms, ไปจนถึงการแก้ปัญหา Cache Miss Storm ด้วยการล็อกให้มีแค่ Request เดียวเท่านั้นที่วิ่งไปดึงข้อมูลจาก Database เมื่อ Cache หลุด เพื่อป้องกันไม่ให้ Database โดนรุมทึ้งจนน็อค
ผลลัพธ์จากการปรับจูนมหาโหดนี้ทำให้ระบบมีความเสถียรระดับ 99.999% โดยในรอบ 12 เดือนที่ผ่านมา มีเหตุการณ์ระบบล่มระดับรุนแรง (SEV-0) เพียงแค่ครั้งเดียว คือตอนเปิดตัวฟีเจอร์ ImageGen ที่มีคนแห่มาสมัครใช้งานกว่า 100 ล้านคนในสัปดาห์เดียวจน Traffic พุ่งไป 10 เท่า ซึ่งในอนาคต OpenAI ก็เล็งที่จะใช้ Cascading Replication เพื่อขยายระบบให้รองรับ Read Replicas ได้เป็นร้อยตัว เรียกว่าเตรียมพร้อมรับมือมนุษยชาติคุยกับ AI กันแบบยาวๆ
ความเห็น (0)
เข้าสู่ระบบเพื่อแสดงความเห็น
เข้าสู่ระบบยังไม่มีความเห็น
เป็นคนแรกที่แสดงความเห็นในบทความนี้