Sự chấp nhận PL/Rust gặp phản ứng trái chiều: Lo ngại về bảo mật và thách thức triển khai

BigGo Editorial Team
Sự chấp nhận PL/Rust gặp phản ứng trái chiều: Lo ngại về bảo mật và thách thức triển khai

Việc tích hợp Rust vào PostgreSQL thông qua PL/Rust đã tạo ra nhiều cuộc thảo luận sôi nổi trong cộng đồng cơ sở dữ liệu, làm nổi bật cả cơ hội và những lo ngại xung quanh tiện ích mở rộng đổi mới này. Mặc dù hiện đã có sẵn trên Amazon RDS, việc triển khai đã nhận được phản hồi trái chiều từ các quản trị viên và nhà phát triển cơ sở dữ liệu.

Cân nhắc về bảo mật và độ tin cậy

Một điểm thảo luận chính tập trung vào mô hình bảo mật của PL/Rust và chỉ định tin cậy của nó. Tiện ích mở rộng này triển khai các biện pháp bảo vệ cụ thể chống lại mã Rust không an toàn, bao gồm các ràng buộc tùy chỉnh và một phiên bản fork đặc biệt của thư viện chuẩn Rust được gọi là postgrestd. Tuy nhiên, các thành viên cộng đồng đã nêu ra những lo ngại hợp lý về các lỗ hổng tiềm ẩn thông qua các crates của bên thứ ba và các vấn đề về tính đúng đắn đã biết của trình biên dịch Rust.

Các Tính Năng Triển Khai Chính:

  • Trình điều khiển rustc tùy chỉnh với các lint chuyên biệt
  • postgrestd: Mục tiêu biên dịch Rust chuyên biệt
  • Chặn mã không an toàn trong các hàm người dùng
  • Có sẵn trên Amazon RDS
  • Hiện đang hỗ trợ các phiên bản đáng tin cậy và không đáng tin cậy
  • Giới hạn ở Linux x86_64/aarch64 cho phiên bản đáng tin cậy

Hiệu suất so với giải pháp truyền thống

Các tác động đến hiệu suất cơ sở dữ liệu đã trở thành một chủ đề thảo luận quan trọng giữa các chuyên gia. Trong khi các thủ tục lưu trữ thường an toàn về kiểu và được biên dịch JIT, một số thành viên cộng đồng lưu ý về các đặc điểm hiệu suất khác nhau giữa các ngôn ngữ thủ tục:

Kỹ thuật là sự đánh đổi, yếu tố giới hạn trong hầu hết các cơ sở dữ liệu là I/O; nếu bạn có thể điều chỉnh I/O của mình để giảm thiểu nó với một thủ tục lưu trữ thì bạn nên làm điều đó, và việc tách rời khỏi SQL trên chính cơ sở dữ liệu có thể đạt được điều đó.

Thách thức triển khai

Mặc dù đã có sẵn trên Amazon RDS, các nhà phát triển báo cáo gặp khó khăn đáng kể với môi trường phát triển cục bộ. Quá trình dockerization và thiết lập cục bộ được mô tả là đặc biệt khó khăn, với một số người dùng yêu cầu cải thiện tài liệu hướng dẫn và hướng dẫn thiết lập. Sự phức tạp trong triển khai này có thể ảnh hưởng đến tỷ lệ áp dụng trong các nhóm phát triển.

Lo ngại về bảo trì dự án

Cộng đồng đã bày tỏ lo ngại về tốc độ phát triển của dự án. Các mối quan tâm đáng chú ý bao gồm việc hỗ trợ PostgreSQL 17 bị trì hoãn, vốn được dự kiến vào tháng 7 nhưng vẫn chưa được phát hành. Điều này dẫn đến sự do dự trong số những người có tiềm năng áp dụng, những người cần đảm bảo về việc bảo trì và hỗ trợ lâu dài.

Góc nhìn của quản trị viên cơ sở dữ liệu

Các DBA truyền thống thường thận trọng với các tiện ích mở rộng ngôn ngữ thủ tục, chủ yếu do lo ngại về quản lý tài nguyên. Mặc dù các tiện ích mở rộng như Foreign Data Tables đã chứng minh giá trị trong môi trường sản xuất, việc giới thiệu các trình xử lý ngôn ngữ mới đòi hỏi phải cân nhắc kỹ lưỡng về tài nguyên hệ thống và tác động đến hiệu suất.

Tương lai của PL/Rust dường như phụ thuộc vào việc giải quyết các mối quan tâm này trong khi vẫn duy trì lời hứa mang lại lợi ích về an toàn và hiệu suất của Rust cho môi trường PostgreSQL. Khi dự án trưởng thành, tài liệu rõ ràng hơn và cải tiến bảo mật liên tục sẽ là yếu tố then chốt cho việc áp dụng rộng rãi hơn.

Tham khảo: PL/Rust: A Trusted Procedural Language Handler for Rust