kLoop:直通 Linux 内核的高性能 asyncio
本文适合有一定编程基础的同学阅读,但不要求有任何专业方向的经验。写作目的,一是撺掇各路英豪一起做开源,二是记录一下新项目的选型设计和概念验证过程。全文小一万字(知乎那个字数统计……),阅读时间大概一下午(连同摆弄代码的时间)。 之前介绍 EdgeDB 历史的那篇文章里有提到,EdgeDB 的 I/O 目前十分依赖 Python asyncio。为了提升 EdgeDB 的速度,Yury 基于 libuv(就是 Node.js 底层的 I/O 库)搞出了人气颇高的 uvloop,最近能预见的几个 EdgeDB 版本都还是会用 uvloop。 与此同时,我们一直在探索进一步提升 I/O 性能的方法,比如用 Linux 内核的 TLS 支持(kTLS)来承接 SSL 连接、用多进程加共享内存来优化多核 I/O,甚至于是用 Rust 重写 EdgeDB 的 I/O 部分等等。我在研究的过程中发现了新的宝藏 io_uring,并用几个周末的时间简单写了点概念验证,于是就有了今天的新坑:kLoop。 https://gitee.com/fantix/kloop kLoop 与 uvloop 对仗,k...