วงการฐานข้อมูลกำลังตื่นเต้นกับแนวทางใหม่ในการพัฒนาระบบค้นหาเวกเตอร์ของ PlanetScale ซึ่งมีความโดดเด่นแตกต่างจากโซลูชันทั่วไป ด้วยการผสานรวมเข้ากับเอนจิน InnoDB ของ MySQL อย่างสมบูรณ์ พร้อมทั้งยังคงรักษาคุณสมบัติ ACID ไว้ได้ การพัฒนานี้ถือเป็นความก้าวหน้าที่สำคัญในเทคโนโลยีการค้นหาเวกเตอร์ โดยเฉพาะสำหรับองค์กรที่ต้องจัดการกับฐานข้อมูลขนาดใหญ่
นวัตกรรมทางเทคนิคเบื้องหลังการพัฒนา
การพัฒนาระบบค้นหาเวกเตอร์ของ PlanetScale โดดเด่นด้วยการใช้ประโยชน์จากงานวิจัยล่าสุดของ Microsoft Research สองชิ้น ได้แก่ SPANN และ SPFresh ซึ่งแตกต่างจากวิธีการแบบดั้งเดิมอย่าง HNSW หรือ DiskANN โดยแก้ไขข้อจำกัดสำคัญหลายประการ:
- รองรับการทำธุรกรรมอย่างสมบูรณ์ : ระบบยังคงรักษาคุณสมบัติ ACID ในขณะที่จัดการกับการดำเนินการเวกเตอร์ ทำให้การเปลี่ยนแปลงในดัชนีสะท้อนทันทีเมื่อธุรกรรมเสร็จสมบูรณ์
- ขยายขนาดเกินกว่า RAM : ต่างจาก HNSW ที่ต้องการให้ชุดข้อมูลทั้งหมดอยู่ใน RAM ระบบของ PlanetScale สามารถจัดการดัชนีที่มีขนาดใหญ่กว่า RAM ผ่านการใช้งาน SSD ได้อย่างมีประสิทธิภาพ
- ความเสถียรของดัชนี : ระบบขจัดความจำเป็นในการสร้างดัชนีใหม่เป็นระยะ ซึ่งเป็นข้อจำกัดทั่วไปในการใช้งาน HNSW
รายละเอียดสถาปัตยกรรมทางเทคนิค
การพัฒนานี้มีคุณสมบัติที่น่าสนใจหลายประการที่เปิดเผยผ่านการอภิปรายในชุมชน:
-
ระบบคอลัมน์แฝง : การจัดการข้อมูลเวกเตอร์ใช้คอลัมน์แฝงในตาราง ช่วยให้การอัปเดตเวกเตอร์มีประสิทธิภาพผ่านกลไกการลบและแทรกในดัชนีเวกเตอร์
-
การเพิ่มประสิทธิภาพการจัดเก็บ : ปัจจุบันใช้การจัดเก็บบล็อกแบบดิบสำหรับข้อมูลเวกเตอร์ พร้อมทั้งกำลังทดสอบอัลกอริทึมการบีบอัดต่างๆ สำหรับการเปิดตัว GA
-
การผสาน B-tree : ทีมได้พัฒนาวิธีแก้ปัญหาเฉพาะเพื่อปรับแนวทาง LSM tree ของ SPFresh ให้ทำงานได้อย่างมีประสิทธิภาพกับโครงสร้าง B-tree ที่พบทั่วไปในฐานข้อมูลเชิงสัมพันธ์
การขยายตัวในแนวนอนและการผสานรวม
จุดแข็งสำคัญของการพัฒนานี้คือความเข้ากันได้กับระบบการแบ่งชาร์ดของ PlanetScale ซึ่งช่วยให้สามารถขยายตัวในแนวนอนสำหรับคลัสเตอร์ขนาดเพตาไบต์ได้ ดัชนีเวกเตอร์ทำงานเหมือนตารางมาตรฐานภายในคลัสเตอร์ ทำให้มั่นใจได้ถึงประสิทธิภาพการทำงานที่คาดการณ์ได้
เมตริกประสิทธิภาพสำหรับความสามารถในการขยายตัวแนวนอนของ PlanetScale ในการค้นหาแบบเวกเตอร์ |
การรองรับและข้อพิจารณาด้านระบบนิเวศ
การพัฒนานี้ยังคงรักษาความเข้ากันได้ด้านไวยากรณ์กับฟิลด์เวกเตอร์และฟังก์ชันเปรียบเทียบของ MySQL 9 แม้จะอยู่บนพื้นฐานของ MySQL 8 แนวทางนี้แสดงให้เห็นถึงความมุ่งมั่นของ PlanetScale ในการลดความแตกแยกของระบบนิเวศ ในขณะที่ยังคงผลักดันคุณสมบัติที่เป็นนวัตกรรม
ข้อจำกัดในปัจจุบันและการพัฒนาในอนาคต
แม้ว่าการพัฒนานี้จะมีความโดดเด่นในหลายด้าน แต่มีข้อควรทราบดังนี้:
- ไม่สามารถแยกการจัดเก็บและการประมวลผลออกจากกันได้ เนื่องจากต้องรักษาคุณสมบัติ ACID
- เฟสเบต้าในปัจจุบันใช้การจัดเก็บบล็อกแบบดิบ ส่งผลให้ใช้พื้นที่ดิสก์มากขึ้น
- อัลกอริทึมการบีบอัดยังอยู่ระหว่างการประเมินสำหรับการเปิดตัว GA
ทีมพัฒนาได้ระบุว่าจะมีการเผยแพร่เอกสารทางเทคนิคโดยละเอียดเกี่ยวกับส่วนขยายการทำธุรกรรมของ SPFresh ซึ่งจะให้ข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับแนวทางใหม่ในการพัฒนาระบบค้นหาเวกเตอร์นี้