Integrasi Rust ke dalam PostgreSQL melalui PL/Rust telah memicu diskusi signifikan dalam komunitas database, menyoroti peluang dan kekhawatiran seputar ekstensi inovatif ini. Meskipun kini tersedia di Amazon RDS, implementasinya mendapat tanggapan beragam dari administrator database dan pengembang.
Pertimbangan Keamanan dan Kepercayaan
Poin utama diskusi berpusat pada model keamanan PL/Rust dan designasi terpercayanya. Ekstensi ini menerapkan pengamanan khusus terhadap kode Rust yang tidak aman, termasuk lint khusus dan fork khusus dari pustaka standar Rust yang disebut postgrestd. Namun, anggota komunitas telah mengangkat kekhawatiran yang valid tentang potensi kerentanan melalui crates pihak ketiga dan masalah kehandalan kompiler Rust yang telah diketahui.
Fitur-Fitur Implementasi Utama:
- Driver rustc khusus dengan lint yang terspesialisasi
- postgrestd: Target kompilasi Rust yang terspesialisasi
- Memblokir kode tidak aman dalam fungsi pengguna
- Tersedia di Amazon RDS
- Saat ini mendukung versi terpercaya dan tidak terpercaya
- Terbatas pada Linux x86_64/aarch64 untuk versi terpercaya
Performa vs Solusi Tradisional
Implikasi performa database telah muncul sebagai topik pembicaraan utama di kalangan profesional. Sementara stored procedure umumnya bersifat type-safe dan dikompilasi JIT, beberapa anggota komunitas mencatat karakteristik performa yang bervariasi di berbagai bahasa prosedural:
Rekayasa adalah tentang kompromi, faktor pembatas dalam kebanyakan database adalah I/O; jika Anda dapat menggeser I/O Anda untuk melakukan lebih sedikit dengan stored procedure, maka Anda mungkin harus melakukannya, dan memiliki terobosan dari SQL pada database itu sendiri dapat mencapai hal tersebut.
Tantangan Implementasi
Meskipun tersedia di Amazon RDS, pengembang melaporkan kesulitan signifikan dengan lingkungan pengembangan lokal. Proses dockerisasi dan pengaturan lokal telah digambarkan sangat menantang, dengan beberapa pengguna meminta peningkatan dokumentasi dan panduan pengaturan. Hambatan implementasi ini berpotensi mempengaruhi tingkat adopsi di antara tim pengembangan.
Kekhawatiran Pemeliharaan Proyek
Komunitas telah mengungkapkan kekhawatiran tentang kecepatan pengembangan proyek. Kekhawatiran yang mencolok termasuk tertundanya dukungan PostgreSQL 17, yang diharapkan pada Juli tetapi masih belum dirilis. Hal ini telah menyebabkan keraguan di antara calon pengguna yang membutuhkan jaminan pemeliharaan dan dukungan jangka panjang.
Perspektif Administrator Database
DBA secara tradisional berhati-hati terhadap ekstensi bahasa prosedural, terutama karena masalah manajemen sumber daya. Meskipun ekstensi seperti Foreign Data Tables telah terbukti berharga dalam lingkungan produksi, pengenalan handler bahasa baru memerlukan pertimbangan cermat tentang sumber daya sistem dan implikasi kinerja.
Masa depan PL/Rust tampaknya bergantung pada penanganan berbagai kekhawatiran ini sambil mempertahankan janjinya untuk membawa manfaat keamanan dan kinerja Rust ke lingkungan PostgreSQL. Seiring dengan kematangan proyek, dokumentasi yang lebih jelas dan peningkatan keamanan yang berkelanjutan akan sangat penting untuk adopsi yang lebih luas.
Referensi: PL/Rust: A Trusted Procedural Language Handler for Rust