开源!非凸Rust高性能日志库ftlog

图片1

日志是应用程序的重要组成部分,无论是服务端程序还是客户端程序,都需要日志作为错误输出或业务记录。非凸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 4

点赞
收藏

评论区

加载中...

相关推荐

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

JVM的内存模型和优化方式

一、JVM的内存模型1.!图片(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/52b2220f04010eb329efbef966f9fa40.png)其中s0,s1为幸

微信小程序new Date()转换时间异常问题

微信小程序苹果手机页面上显示时间异常,安卓机正常问题image(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/b691e1230e2f15efbd81fe11ef734d4f.png)错误代码vardate'2021030617:00:00'vardateT

MySQL日志体系详解

前言日志是MySQL数据库的重要组成部分。日志文件中记录着MySQL数据库运行期间发生的变化;也就是说用来记录MySQL数据库的客户端连接状况、SQL语句的执行情况和错误信息等。当数据库遭到意外的损坏时,可以通过日志查看文件出错的原因,并且可以通过日志文件进行数据恢复。MySQL的日志体系有如下几种分类:1.错误日志2.查询日志

Linux日志安全分析技巧

0x00前言我正在整理一个项目,收集和汇总了一些应急响应案例(不断更新中)。GitHub地址:https://github.com/Bypass007/EmergencyResponseNotes本文主要介绍Linux日志分析的技巧,更多详细信息请访问Github地址,欢迎Star。0x01日志简介Lin