Arroyo:一款基于Arrow的超高速JSON解码器

2025-03-26
Arroyo:一款基于Arrow的超高速JSON解码器

Arroyo流处理引擎的核心挑战在于高效处理大规模JSON数据流。文章介绍了Arroyo如何利用Arrow列式内存格式和一种两阶段的JSON解码策略,显著提升了JSON反序列化的速度。第一阶段构建一个扁平化的“tape”数据结构,第二阶段根据schema并行构建Arrow数组。该方法在基准测试中比基于Jackson的反序列化器快2.3倍。此外,Arroyo还扩展了对原始JSON和无效数据处理的支持,使其能够更灵活地处理真实世界中的流数据。

阅读更多
开发 JSON解码 Arrow

如何用Rust构建插件系统

2024-06-03
如何用Rust构建插件系统

本文详细介绍了如何在Rust中构建动态链接、基于FFI的插件系统。作者首先讨论了Arroyo(一个实时SQL引擎)如何使用户定义函数(UDF)成为可能。作者介绍了各种方法,包括嵌入脚本语言、RPC调用、编译为Wasm和共享库,最终选择了共享库并解释了原因。文章深入研究了使用C ABI、设计数据类型、导出函数、处理恐慌以及编译和调用FFI函数的实现细节。作者提供了一个使用dlopen2库的示例插件和主机代码,展示了该方法的实用性。

阅读更多
未分类 插件系统