在并发量达到82的时候,两个交易请求同时访问了同一个账本锁,竞态条件出现了,在老版本里,这会导致一个短暂的数据不一致,可能是0.5秒的延迟,可能是一笔交易的状态错误,在测试环境里不算什么,在全球直播的冬奥运行环境里,这是事故。
但补丁拦截了它。
在竞态条件实际发生前0.3秒,补丁检测到了锁竞争的前兆信号,主动回滚了其中一个请求,让它重新排队,0.3秒后那个请求重新执行,成功,零错误,零延迟,用户端无感知。
0.3秒。
方远盯着屏幕。
他的手指搭在键盘边沿,指关节发白,不是用力,是绷着。
…………
大屏幕上的数字在回落。
80,75,70,65。
比赛的关键时刻过去了,消费高峰回落。
方远没有动。
他在看日志。
黄色的那一行,他把鼠标移上去,点开了详细信息。
触发时间:20:18:03.714。
触发条件:COnCUrrent_lOCk_COntentiOn(并发锁竞争)。
竞态类型:Type-2(双写冲突)。
拦截方式:pre-emptive_rOllbaCk(抢先回滚)。
拦截延迟:0.3秒。
影响交易数:1笔。
用户端影响:无。
系统状态:正常。
每一个字段都是他自己设计的,触发条件的分类是他定的,拦截逻辑是他写的,168小时验证是他跑的,五遍模拟是他跑的。
在模拟里从来没有触发过。
在真实环境里触发了。
在冬奥运行的第十一天,在全球直播的冰壶决赛里,在并发量82的峰值上。
他的补丁拦住了。
…………
老周走过来了。
站在方远身后,低头看了一眼屏幕。
看到了那行黄色的记录。
他没有说话,看了三秒,看到了"INTERCEPT"和"0.3S"。
然后他拍了一下方远的肩膀。
很轻,手掌落在方远的肩胛骨上面,停了不到一秒,就收回去了。
这是老周十一天来跟方远之间最多的一次肢体接触,平时他们之间的交流是"几倍
本章未完,请点击下一页继续阅读!