展示HN:Frigatebird – 基于io_uring构建的嵌入式OLAP数据库

1作者: platoventure10 天前原帖
在过去的一年里,我花了大部分时间构建了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&#x27;t just to &quot;make it work&quot; 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: &lt;<a href="https:&#x2F;&#x2F;github.com&#x2F;Frigatebird-db&#x2F;frigatebird" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Frigatebird-db&#x2F;frigatebird</a>&gt;