交易撮合引擎由串行转并行,性能提升20%
时间:2022-04-12 22:42:01 | 来源:行业动态
时间:2022-04-12 22:42:01 来源:行业动态
随着市场参与机构和交易量的增长,交易平台必须具备可靠性、可扩展性和安全稳定性,底层系统架构必须能够满足上层交易需求。这类平台的最大特点是高吞吐、低延时,对于性能要求极高。此次双方通力合作,成功将交易系统的核心组件撮合引擎并行化,使系统整体性能得以大幅提升。
中汇公司的撮合引擎是基于传统串行计算模式,这是为了确保金融交易正确性的核心原则价格优先、时间优先,即价高买单或价低卖单优先处理,相同价格的交易订单按照其到达时间的先后处理。随着业务的发展,该串行架构在性能上体现出一定的局限性。对撮合引擎进行并行化无疑可以给系统性能带来最大的提升空间,但同时确保价格优先、时间优先的原则并不容易,稍有差池就会影响交易的公平。
为此,微软亚洲研究院项目团队首先对行业知识和业务逻辑进行快速学习,并对现有系统进行深入的分析和测试,针对系统性能提升问题提出了三种并行架构思路:数据并行、任务并行、流水线并行,最终结合外汇交易中心的实际业务,选择了流水线并行方案。
微软亚洲研究院系统研究组高级研究员林昊翔表示,相较于其它并行方案,流水线并行拥有四个明显优势。首先,它可以确保多个订单的不同阶段虽然在同时执行,但是订单整体是按照规定顺序进行撮合,而其它并行方案没有内建的执行顺序保障机制;其次,流水线清晰定义了可以并发执行的代码块,方便理解、细化需要同步原语保护的临界区;第三,流水线并行的扩展性更好,阶段内部的执行相对独立,扩展只需增加更多的流水线阶段即可;最后,该方式对原有撮合引擎的改造是非入侵式、可控的,并行化的实现、测试和后期维护的代价相对较小。
交易撮合的串行执行更容易保证正确性,流水线并行的计算模式可以在不打破两个优先原则的前提下达到更高的系统性能。初步的实验结果表明,该方案可将系统整体性能提升20%左右,系统吞吐率TPS在实验室环境达到了14万/秒。中汇信息技术(上海)有限公司副总经理李正介绍道,之前我们做过应用代码级别的系统性能优化工作,像这次能深入到CPU指令、系统和处理架构级别的探索,对我们来说是全新的尝试。如果未来对撮合引擎进行更深入的优化,相信系统整体性能将会有进一步的提升。我们会将此次的研究成果应用于不同的业务系统中去。