การผสานรวม Rust เข้ากับ PostgreSQL ผ่าน PL/Rust ได้จุดประเด็นการถกเถียงที่สำคัญในชุมชนฐานข้อมูล โดยชี้ให้เห็นทั้งโอกาสและข้อกังวลเกี่ยวกับส่วนขยายที่เป็นนวัตกรรมนี้ แม้ว่าขณะนี้จะมีให้ใช้งานบน Amazon RDS แล้ว การนำไปใช้งานก็ได้รับเสียงตอบรับที่หลากหลายจากผู้ดูแลฐานข้อมูลและนักพัฒนา
ข้อพิจารณาด้านความปลอดภัยและความน่าเชื่อถือ
ประเด็นสำคัญในการอภิปรายมุ่งเน้นไปที่โมเดลความปลอดภัยของ PL/Rust และการกำหนดให้เป็นส่วนขยายที่น่าเชื่อถือ ส่วนขยายนี้ได้นำมาตรการป้องกันเฉพาะสำหรับโค้ด Rust ที่ไม่ปลอดภัย รวมถึงการตรวจสอบแบบกำหนดเองและการแยกไลบรารีมาตรฐานของ Rust ที่เรียกว่า postgrestd อย่างไรก็ตาม สมาชิกในชุมชนได้แสดงความกังวลที่มีเหตุผลเกี่ยวกับช่องโหว่ที่อาจเกิดขึ้นผ่านแพ็คเกจของบุคคลที่สาม และปัญหาความถูกต้องที่ทราบกันของตัวคอมไพเลอร์ Rust
คุณสมบัติสำคัญในการนำไปใช้:
- ไดรเวอร์ rustc ที่ปรับแต่งพิเศษพร้อมระบบตรวจสอบความถูกต้องเฉพาะทาง
- postgrestd: เป้าหมายการคอมไพล์ Rust แบบเฉพาะทาง
- ปิดกั้นโค้ดที่ไม่ปลอดภัยในฟังก์ชันของผู้ใช้
- มีให้บริการบน Amazon RDS
- ปัจจุบันรองรับทั้งเวอร์ชันที่เชื่อถือได้และเวอร์ชันที่ยังไม่ผ่านการรับรอง
- จำกัดเฉพาะ Linux x86_64/aarch64 สำหรับเวอร์ชันที่เชื่อถือได้
ประสิทธิภาพเทียบกับโซลูชันแบบดั้งเดิม
ผลกระทบต่อประสิทธิภาพของฐานข้อมูลได้กลายเป็นประเด็นสำคัญในการพูดคุยระหว่างผู้เชี่ยวชาญ แม้ว่า stored procedures จะมีความปลอดภัยด้านประเภทข้อมูลและมีการคอมไพล์แบบ JIT แต่สมาชิกบางคนในชุมชนได้สังเกตเห็นลักษณะประสิทธิภาพที่แตกต่างกันในภาษาที่ใช้เขียนโปรแกรมต่างๆ:
วิศวกรรมคือการแลกเปลี่ยน ปัจจัยที่จำกัดในฐานข้อมูลส่วนใหญ่คือ I/O ถ้าคุณสามารถปรับเปลี่ยน I/O ของคุณเพื่อให้ใช้งานน้อยลงด้วย stored procedure คุณควรทำ และการมีทางเลือกนอกเหนือจาก SQL บนฐานข้อมูลเองก็สามารถทำให้บรรลุเป้าหมายนั้นได้
ความท้าทายในการนำไปใช้
แม้จะมีให้ใช้งานบน Amazon RDS แล้ว นักพัฒนารายงานว่าพบความยากลำบากอย่างมากกับสภาพแวดล้อมการพัฒนาในเครื่อง กระบวนการทำ dockerization และการตั้งค่าในเครื่องถูกอธิบายว่ามีความท้าทายเป็นพิเศษ โดยผู้ใช้บางรายเรียกร้องให้มีการปรับปรุงเอกสารประกอบและคู่มือการตั้งค่า ความยุ่งยากในการนำไปใช้นี้อาจส่งผลกระทบต่ออัตราการนำไปใช้ในทีมพัฒนา
ข้อกังวลเกี่ยวกับการดูแลรักษาโครงการ
ชุมชนได้แสดงความกังวลเกี่ยวกับความเร็วในการพัฒนาโครงการ ข้อกังวลที่สำคัญรวมถึงการสนับสนุน PostgreSQL 17 ที่ล่าช้า ซึ่งคาดว่าจะมีในเดือนกรกฎาคมแต่ยังไม่ได้เปิดตัว สิ่งนี้นำไปสู่ความลังเลในกลุ่มผู้ที่อาจนำไปใช้ซึ่งต้องการความมั่นใจในการดูแลรักษาและการสนับสนุนในระยะยาว
มุมมองของผู้ดูแลฐานข้อมูล
ผู้ดูแลฐานข้อมูลมักระมัดระวังเกี่ยวกับส่วนขยายภาษาที่ใช้เขียนโปรแกรม โดยเฉพาะอย่างยิ่งเนื่องจากข้อกังวลเรื่องการจัดการทรัพยากร แม้ว่าส่วนขยายเช่น Foreign Data Tables จะพิสูจน์แล้วว่ามีคุณค่าในสภาพแวดล้อมการผลิต แต่การนำตัวจัดการภาษาใหม่เข้ามาต้องพิจารณาทรัพยากรระบบและผลกระทบต่อประสิทธิภาพอย่างรอบคอบ
อนาคตของ PL/Rust ดูเหมือนจะขึ้นอยู่กับการจัดการกับข้อกังวลต่างๆ เหล่านี้ ในขณะที่ยังคงรักษาคำมั่นสัญญาในการนำประโยชน์ด้านความปลอดภัยและประสิทธิภาพของ Rust มาสู่สภาพแวดล้อม PostgreSQL เมื่อโครงการพัฒนาขึ้น เอกสารที่ชัดเจนและการปรับปรุงความปลอดภัยอย่างต่อเนื่องจะเป็นสิ่งสำคัญสำหรับการนำไปใช้อย่างแพร่หลายมากขึ้น
อ้างอิง: PL/Rust: A Trusted Procedural Language Handler for Rust