展示HN:Frigatebird – 基于io_uring构建的嵌入式OLAP数据库
在过去的一年里,我花了大部分时间构建了Frigatebird,这是一款用Rust编写的高性能列式SQL数据库。我的目标不仅仅是“让它工作”,而是利用所有可用的系统编程技巧来最大化Linux上的吞吐量。Frigatebird是一个从基本原理出发构建的在线分析处理(OLAP)引擎。它拥有一个自定义的存储引擎(Walrus),使用io_uring进行批量写入,配备了自定义的自旋锁分配器,以及基于推送的火山执行管道。我明确避免使用异步运行时,而是选择手动线程调度和原子工作窃取,以最大化缓存局部性。
目前,它仅支持单表操作(还不支持连接查询),非常希望听到你的想法。
代码链接:<a href="https://github.com/Frigatebird-db/frigatebird" rel="nofollow">https://github.com/Frigatebird-db/frigatebird</a>
查看原文
I’ve spent a better part of the last year building Frigatebird, a high performance columnar SQL database written in Rust. The goal wasn't just to "make it work" but to use every systems programming trick available to maximize throughput on Linux. Frigatebird is an OLAP engine built from first principles. It features a custom storage engine (Walrus) that uses io_uring for batched writes, a custom spin lock allocator, and a push based volcano execution pipeline. I explicitly avoided async runtimes in favor of manual thread scheduling and atomic work stealing to maximize cache locality.<p>currently it only supports single table operations (no JOINS yet), would love to hear your thoughts on it<p>code: <<a href="https://github.com/Frigatebird-db/frigatebird" rel="nofollow">https://github.com/Frigatebird-db/frigatebird</a>>