ข้ามไปยังเนื้อหา

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

เทคโนโลยี
5 ครั้ง
0 ความเห็น
3 นาที
เบื้องหลัง OpenAI จูน PostgreSQL ยังไง ให้รับมือผู้ใช้ ChatGPT 800 ล้านคน
Image Credit: openai.com
By Suphansa Makpayab
TL;DR

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)

เข้าสู่ระบบเพื่อแสดงความเห็น

เข้าสู่ระบบ

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

เป็นคนแรกที่แสดงความเห็นในบทความนี้