开源!非凸 Rust 高性能日志库 ftlog
日志是应用程序的重要组成部分,无论是服务端程序还是客户端程序,都需要日志作为错误输出或业务记录。非凸 Rust 高性能日志库 ftlog,支持“受限写入”以及“时间分割”等功能,具备显著的性能优势。
一、ftlog 与普通日志,有何不同?
普通日志库受到磁盘 IO 和系统 Pipe 的影响,单线程顺序写入单条速度大概要 2500ns(SSD),如果碰到 IO 抖动或者慢磁盘,日志会是低延迟交易的主要瓶颈。而非凸科技开源的 Rust 高性能日志库 ftlog v0.1.0,先把日志 Send 到 Channel,再启动后台单独线程 Recv,且磁盘写入,测试速度在 300ns 左右。
值得注意的是,ftlog 与 Rust 的 log 生态不兼容,建议删除掉原来的日志库。特别是不要让两个日志库导出到同一个地方,否则两个日志生态会同时打印,导致日志不可读。
低延迟交易,要求整个交易链条上的所有环节,都尽量缩短时间间隔。而非凸日志库 ftlog 在速度上更快,可实现更低的延迟。
过去,金融证券领域的高性能一般指的是高吞吐量,满足一定的延迟要求。但随着机构交易占比的逐渐提升,他们对延迟的要求也越来越高。对券商来说,谁能在延迟上取得最低,谁就可以掌握客户。
二、在开源上,不断发力
Rust 作为一门备受关注的新编程语言,它在保证内存安全的同时,还能实现不亚于 C/C++等语言的性能。非凸科技选择 Rust,最主要的原因是 Rust 的高性能、高安全和可靠性与低延迟交易的核心需求高度匹配。在引擎层面,Rust 具有可靠的安全性和稳定性;在数据接入层面,Rust 足够底层,可以做到更多其他语言难以做到的事。
此外,对于企业级项目的开发,采用 Rust 更能保证程序的稳定性。对于高并发和低延迟部分,Rust 相关的成熟库还不多,需要企业级的打磨才能更可靠。对此,非凸科技将在开源项目上不断发力,攻坚更多核心技术。
做真正自研的技术,尤其是基础软件和核心底层技术。非凸科技希望通过开源,与广大开发者、行业伙伴、客户,携手推进 Rust 在低延迟交易领域的开发、应用和落地,加速推动国产基础软件的繁荣和发展。
非凸科技计划在 ftlog v0.2.0 版本迁回官方 log,并加入 target 支持,欢迎大家的建议、交流和探讨。
代码开源地址:
https://github.com/nonconvextech/ftlog
https://crates.io/crates/ftlog
评论