一次系统升级导致骑士资本(Knight Capital )4.65亿美元的交易损失,这一切是如何发生的?
为了让客户参与纽约证券交易所的Retail Liquidity计划(RLP),Knight Capital决定对系统中和订单处理流程相关的代码进行更改。这次更改需要给SMARS系统开发、部署新的代码。SMARS是一个自动化、高速度向交易市场发送执行命令的算法路由器。SMARS的核心功能就是接受来自Knight交易平台发送的交易指令,然后根据整个交易市场的流动性向外发出一个或多个执行命令。
在新部署的过程中,Knight的团队计划用新的RLP代码取代SMARS中已经多年没有使用的相关部分。这些未使用的代码先前是被一个名为“Power Peg”的功能所用。虽然多年没有使用但是该功能一直被保留着而且在进行RLP部署时依然可以调用。新的PLP代码会对以前激活Power Peg代码的标志符进行更改。这样当先前的标志符被设定成“yes”时就可以删除无用的Power Peg代码,新的PLR功能将开始运行。
在Knight运用Power Peg代码的情况下,当一个子命令被执行的时候,一个累积量函数认为这些数目的股票父命令已经被执行了。这一特性使系统在父命令完成之前停止释放子命令。在2003年Knight已经停止使用Power Peg功能。在2005年,Knight将Power Peg中追踪累计股票功能的函数移动到SMARS代码中更前的序列,可是在更改之后Knight却没有对可用性进行测试。
2012年7月27日,Knight开始分阶段向SMARS系统部署新的RLP代码。在这期间负责部署的一位技术人员不慎漏掉了一台服务器,这样八台SMARS服务器中就仅有七台被部署上了新的代码。对于这样的新代码部署,Knight内部没有技术人员做二次检查,而且技术团队内部甚至没有人意识到Power Peg代码还没有从八台服务器中移除。Knight对于这样的业务流程缺乏书面操作规范。
在八月一日,Knight新系统开始接受来自证券经纪人的订单。那七台部署过新代码的服务器在处理订单时工作正常,但是第八台服务器在处理订单时却触发了没有被移除且有缺陷的Power Peg代码。结果就是这台服务器开始向交易中心发送子命令执行。Knight也接受一些合格的订单进行盘前交易。6台SMARS服务器负责处理这些订单,在上午八点左右Knight的内部系统开始发送“Power Ped disabled”的报错邮件。在九点半开盘前有97封邮件发送到Knight工作人员的邮箱,但是由于Knight系统警报没有设计这种类型的消息,所以当他们收到这类邮件时一般不予审查。
由于Knight没有处理这类重大问题的相关程序和指南,所以在当天其只能依靠其技术团队在一个实时交易环境下去查找定位问题。在这个过程中Knight的新系统依然在不断向交易市场发送子命令。更糟糕的事情是在他们定位系统问题的过程中卸载了其余七台服务器上正确部署的RLP代码。这让输入的父命令激活了仍然留在服务器中的Power Peg代码。接着八台服务器全部沦陷。
事后调查得知引发这起事故的主要原因在于一个长时间缺乏维护的代码库和一个缺乏流程规范的技术团队。导致问题的代码甚至已经8年没有维护使用过了。整个事故报告在这里。相关从业人员可以从中汲取教训,以避免类似的悲剧再次发生。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
银行IT的那点事
银行业IT系统的一丁点小故障都可能引起重大影响,维护银行IT这么复杂?银行IT里又有哪些不为人知的故事?
-
信息化内参(3):未雨当绸缪,备份要抓紧
企业需要面对的是当微软不再提供Windows XP安全更新时,企业的信息和数据安全如何保障?从现在开始,备份和转移数据吧!虚拟化和云备份或许是不错的选择。
-
雅安地震会给IT企业带来什么影响?
自2005年开始,大批IT企业“西进”,在成都、重庆等西部城市设立研发、生产、营销运营中心。此次地震,IT公司在生产力和运力两方面均会遭受影响。
-
雅安地震影响IT产业?
IT企业纷纷实施“西进”战略,在成都、重庆等西部城市设立研发、生产、营销运营中心。尽管上述公司未对此次地震造成的损失发表声明,但从以往的经验以及现在的发展态势上看,此次地震,或许会给全球IT产业带来一定程度的影响。