在RDS PostgreSQL上使用Rust实现高性能函数

AWS宣布PL/Rust在Amazon RDS PostgreSQL 13和14版本中正式可用

AWS宣布了Rust过程语言处理程序(PL/Rust)在Amazon RDS(Amazon Relational Database Service)上运行PostgreSQL 13和14版本的普遍可用性。这一发布基于2023年5月的先前版本,该版本仅在PostgreSQL 15版本上启用了此功能。

Amazon RDS和PostgreSQL简介

Amazon RDS是亚马逊提供的一种托管数据库服务,支持多种流行的数据库引擎,包括MariaDB、MySQL、Microsoft SQL Server、Oracle和PostgreSQL。PostgreSQL是一种用C语言开发的开源关系数据库系统,支持使用非SQL和C语言创建用户定义函数的过程语言(PLs)。

PL/Rust的引入

PL/Rust是PostgreSQL扩展生态系统中的一个新的非核心处理器,旨在提供与用C语言编写的PostgreSQL函数相当的性能。通过该处理器,用Rust定义的PostgreSQL函数被编译为本地机器代码,并受益于Rust的内存安全保证。

PL/Rust的使用和性能

启用PL/Rust扩展需要将'plrust'添加到RDS数据库参数组中的'shared_preload_libraries'参数,并在实例中运行创建扩展命令。PL/Rust在Amazon RDS中以可信语言执行,限制了函数作者使用任何可能访问文件系统操作、外部模块或通过操作系统访问PostgreSQL服务器进程的Rust功能。

在性能测试中,PL/Rust在处理大量随机向量样本时显著减少了运行时间,相比PL/pgsql和PL/v8的14秒和54秒,PL/Rust仅需3秒。

PL/Rust的限制

在Amazon RDS生态系统中,PL/Rust目前不适用于Amazon Aurora的用户,这是基于Amazon RDS的完全托管服务。此外,尽管PL/Rust是一个可信语言扩展,Amazon RDS用户必须由RDS超级用户特权的持有者授予访问权限。

可用性和进一步信息

PL/Rust在所有AWS区域中可用,更多关于其使用的信息可以在Amazon RDS用户指南中找到。

阅读 79
0 条评论