“七次。”李轩的声音哑得像砂纸,“刚才是崩溃在交易记录同步环节。
并发写入的时候锁冲突导致回滚,回滚的过程里价格缓存表被清空了,后面的读取直接报错。”
“怎么修?”
“把价格缓存表跟交易日志表分离。
日志表只做顺序写入,不参与价格计算。
价格表用内存队列单独维护,每次交易完成之后先把结果写进内存队列,再由队列异步落盘。
这样读写分离之后锁冲突应该能降下去。”
他敲键盘的时候指尖几乎是砸在键帽上的,每一击都带着一种又急又克制的力道。
他旁边那个棒球帽程序员侧过头看着他敲完那段代码,然后转回去在自己的屏幕上打开了一个新的调试窗口。
他在调试窗口里输入了几行测试命令,盯着反馈的结果看了大概二十秒,然后从嘴里挤出一句话:“队列长度设了多少?”
“一千。”
“一千够吗?峰值并发按每秒三十笔算,队列写入的积压如果超过处理速度,迟早会溢出来。”
“所以我在落盘线程里加了背压控制,队列长度超过八百的时候就触发降速写入。
数据先存在磁盘缓冲区里,等队列清到五百以下再恢复异步落盘。”李轩说着,手指在键盘上敲了几行代码,把那部分逻辑补了进去。
棒球帽程序员看完之后点了点头,帽檐随着他点头的动作上下晃了一下,然后又停住了。
他把帽檐往上推了一点,露出额头,额头上有一道被帽檐压出来的红印。
“行了,跑一遍看看。”
李轩按下回车键。
屏幕上的进度条重新从零开始走,这一次比之前任何一次都走得顺畅。
百分之十的时候梁永琪低头看了一眼手机,没有新消息。
百分之二十五的时候角落里的泡面程序员打了一个哈欠,哈欠打到一半硬生生憋了回去,变成了一声闷在嘴里的气音。
百分之四十的时候李轩的身体往前倾了一点,两只手悬在键盘上方,像一只等着猎物靠近的猫。
百分之六十三的时候棒球帽程序员把帽檐推到了头顶,露出整张脸,他的脸上全是出油之后覆盖的一层薄光,眼底红得像被辣椒水洗过。
百分之八十一
本章未完,请点击下一页继续阅读!