第386章 高性能系统研发难点

电子撮合系统是典型的高性能场景下的信息化系统,研发的核心难点集中在算法设计、系统架构、数据一致性等多个关键方面。

当下,鹏交所每日成交订单仅一百多笔,可随着上市公司数量的增多以及股民和机构投资者不断涌入,订单量定会呈爆发式增长。

他清楚地记得,前世鹏交所在电子撮合系统上线当年,日均订单量就飙升至五千笔,1998 年首批基金公司进场后,更是迅猛增长到日均十万笔。而到了后来全民炒股的 21 世纪 20 年代,每日订单量竟高达三到五亿笔。

依据这些经验,秦奕将如今设计的这个电子撮合系统峰值处理能力定在每秒五百笔,他预计这个系统在未来五年内应该能稳定运行,不会出现大问题。

为实现电子撮合算法,团队首先得设计一个适合动态插入、撤单且能动态排序的数据结构。

堆、跳表、红黑树这两类高效数据结构及相关算法已被完整提出,秦奕无需给团队详细介绍其中的算法设计,只需把去年出版的那本《算法导论》拿给负责算法设计的团队成员研读即可。

数据结构之外,由于撮合系统会同时接收不同营业部发来的订单信息,必然涉及多线程处理。

在多线程环境下,订单的插入、撤单和撮合操作,都要保证数据一致性,而要让性能不被这一致性要求拖累,就必须采用优化的乐观锁机制。

秦奕召集团队成员,详细讲解了这一机制的要点,成员们认真记录,不时提出疑问,大家围绕着技术难题展开热烈讨论。

系统可靠性与容错同样是巨大挑战。为保证交易不间断运行,避免宕机或数据丢失,交易数据需实时落盘。但以现有的技术条件,频繁的 I/O 操作严重拖累性能,团队需要设计轻量级的预写日志结构。

团队成员们围坐在会议桌前,对着电脑上的数据和设计图纸,反复探讨如何优化,有人提出一种思路,马上就有人从不同角度分析其可行性与不足。