การพัฒนาระบบค้นหาเวกเตอร์แบบใหม่ของ PlanetScale: การศึกษาเชิงลึกเกี่ยวกับการผสานเทคโนโลยี SPANN และ SPFresh

BigGo Editorial Team
การพัฒนาระบบค้นหาเวกเตอร์แบบใหม่ของ PlanetScale: การศึกษาเชิงลึกเกี่ยวกับการผสานเทคโนโลยี SPANN และ SPFresh

วงการฐานข้อมูลกำลังตื่นเต้นกับแนวทางใหม่ในการพัฒนาระบบค้นหาเวกเตอร์ของ PlanetScale ซึ่งมีความโดดเด่นแตกต่างจากโซลูชันทั่วไป ด้วยการผสานรวมเข้ากับเอนจิน InnoDB ของ MySQL อย่างสมบูรณ์ พร้อมทั้งยังคงรักษาคุณสมบัติ ACID ไว้ได้ การพัฒนานี้ถือเป็นความก้าวหน้าที่สำคัญในเทคโนโลยีการค้นหาเวกเตอร์ โดยเฉพาะสำหรับองค์กรที่ต้องจัดการกับฐานข้อมูลขนาดใหญ่

นวัตกรรมทางเทคนิคเบื้องหลังการพัฒนา

การพัฒนาระบบค้นหาเวกเตอร์ของ PlanetScale โดดเด่นด้วยการใช้ประโยชน์จากงานวิจัยล่าสุดของ Microsoft Research สองชิ้น ได้แก่ SPANN และ SPFresh ซึ่งแตกต่างจากวิธีการแบบดั้งเดิมอย่าง HNSW หรือ DiskANN โดยแก้ไขข้อจำกัดสำคัญหลายประการ:

  • รองรับการทำธุรกรรมอย่างสมบูรณ์ : ระบบยังคงรักษาคุณสมบัติ ACID ในขณะที่จัดการกับการดำเนินการเวกเตอร์ ทำให้การเปลี่ยนแปลงในดัชนีสะท้อนทันทีเมื่อธุรกรรมเสร็จสมบูรณ์
  • ขยายขนาดเกินกว่า RAM : ต่างจาก HNSW ที่ต้องการให้ชุดข้อมูลทั้งหมดอยู่ใน RAM ระบบของ PlanetScale สามารถจัดการดัชนีที่มีขนาดใหญ่กว่า RAM ผ่านการใช้งาน SSD ได้อย่างมีประสิทธิภาพ
  • ความเสถียรของดัชนี : ระบบขจัดความจำเป็นในการสร้างดัชนีใหม่เป็นระยะ ซึ่งเป็นข้อจำกัดทั่วไปในการใช้งาน HNSW

รายละเอียดสถาปัตยกรรมทางเทคนิค

การพัฒนานี้มีคุณสมบัติที่น่าสนใจหลายประการที่เปิดเผยผ่านการอภิปรายในชุมชน:

  1. ระบบคอลัมน์แฝง : การจัดการข้อมูลเวกเตอร์ใช้คอลัมน์แฝงในตาราง ช่วยให้การอัปเดตเวกเตอร์มีประสิทธิภาพผ่านกลไกการลบและแทรกในดัชนีเวกเตอร์

  2. การเพิ่มประสิทธิภาพการจัดเก็บ : ปัจจุบันใช้การจัดเก็บบล็อกแบบดิบสำหรับข้อมูลเวกเตอร์ พร้อมทั้งกำลังทดสอบอัลกอริทึมการบีบอัดต่างๆ สำหรับการเปิดตัว GA

  3. การผสาน B-tree : ทีมได้พัฒนาวิธีแก้ปัญหาเฉพาะเพื่อปรับแนวทาง LSM tree ของ SPFresh ให้ทำงานได้อย่างมีประสิทธิภาพกับโครงสร้าง B-tree ที่พบทั่วไปในฐานข้อมูลเชิงสัมพันธ์

การขยายตัวในแนวนอนและการผสานรวม

จุดแข็งสำคัญของการพัฒนานี้คือความเข้ากันได้กับระบบการแบ่งชาร์ดของ PlanetScale ซึ่งช่วยให้สามารถขยายตัวในแนวนอนสำหรับคลัสเตอร์ขนาดเพตาไบต์ได้ ดัชนีเวกเตอร์ทำงานเหมือนตารางมาตรฐานภายในคลัสเตอร์ ทำให้มั่นใจได้ถึงประสิทธิภาพการทำงานที่คาดการณ์ได้

เมตริกประสิทธิภาพสำหรับความสามารถในการขยายตัวแนวนอนของ PlanetScale ในการค้นหาแบบเวกเตอร์
เมตริกประสิทธิภาพสำหรับความสามารถในการขยายตัวแนวนอนของ PlanetScale ในการค้นหาแบบเวกเตอร์

การรองรับและข้อพิจารณาด้านระบบนิเวศ

การพัฒนานี้ยังคงรักษาความเข้ากันได้ด้านไวยากรณ์กับฟิลด์เวกเตอร์และฟังก์ชันเปรียบเทียบของ MySQL 9 แม้จะอยู่บนพื้นฐานของ MySQL 8 แนวทางนี้แสดงให้เห็นถึงความมุ่งมั่นของ PlanetScale ในการลดความแตกแยกของระบบนิเวศ ในขณะที่ยังคงผลักดันคุณสมบัติที่เป็นนวัตกรรม

ข้อจำกัดในปัจจุบันและการพัฒนาในอนาคต

แม้ว่าการพัฒนานี้จะมีความโดดเด่นในหลายด้าน แต่มีข้อควรทราบดังนี้:

  • ไม่สามารถแยกการจัดเก็บและการประมวลผลออกจากกันได้ เนื่องจากต้องรักษาคุณสมบัติ ACID
  • เฟสเบต้าในปัจจุบันใช้การจัดเก็บบล็อกแบบดิบ ส่งผลให้ใช้พื้นที่ดิสก์มากขึ้น
  • อัลกอริทึมการบีบอัดยังอยู่ระหว่างการประเมินสำหรับการเปิดตัว GA

ทีมพัฒนาได้ระบุว่าจะมีการเผยแพร่เอกสารทางเทคนิคโดยละเอียดเกี่ยวกับส่วนขยายการทำธุรกรรมของ SPFresh ซึ่งจะให้ข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับแนวทางใหม่ในการพัฒนาระบบค้นหาเวกเตอร์นี้