如何用 Wasm 为数据库增加 UDF 功能
作者: arcosx 百度高级研发工程师,负责机器学习平台研发 前言 UDF (User-defined function) 意为用户提供或定义的函数。在数据库领域,UDF 代表一种机制:通过添加一个函数来扩展数据库服务的功能。 WebAssembly (Wasm) 是一个可移植、体积小、加载快并且兼容 Web 的全新格式。近年来 Wasm 不仅仅在前端领域广泛应用,也开始在服务端大展身手。其在服务端提供了接近原生代码的性能,但是又不损失安全性。 笔者在参加 NebulaGraph 举办的 Nebula Hackathon 2021 中将上述两种技术词汇结合起来,为其实现了第一个生产级用户自定义函数引擎,荣获该项赛事的最佳项目奖。本文是笔者在比赛结束后的总结与回顾,旨在交流与分享 Wasm 在服务端作为拓展机制的潜能,抛砖引玉。 需求分析 User-defined function 广泛应用 当下,有非常多的主流数据库或数据处理系统都存在 UDF 实现,简要列举如下: 关系型数据库领域,绝大部分关系型数据库,例如 MySQL,Microsoft SQL Server 等支持并且有其标准...