的注意力,都集中在了屏幕的文档里。
文档里有一大堆设计图和伪代码,还有几段未完成的C语言程序。
问题的核心确实棘手,在2000年的技术环境下,分布式数据库刚刚起步,国内这方面的资料少之又少,更别说解决并发死锁了。
唐国栋看了一眼墙上的挂钟,说道:“如果你看不懂,现在认输还来得及。”
魏东笑了笑,手指搭在了键盘上,忽然动了。
他的打字速度极快,光标在屏幕上飞速跳动。
唐国栋甚至没看清他是怎么操作的,就见他已经调出了那段问题代码,直接删掉了中间大段的冗余逻辑,然后重新输入。
全程他没有丝毫的停顿,就像是肌肉记忆一样。
一行,五行,十行,二十行。
屏幕上的字符飞速地向下滚动。
魏东的手指在键盘上翻飞,偶尔用鼠标切换一下窗口,动作行云流水,完全不像是一个大专生具备的能力。
哪怕是胡乱输入,都没有这么的行云流水。
唐国栋下意识朝前凑了凑,想看看魏东到底是真的在输入代码还是在胡乱表演。
他看了一会儿,越看越看震惊。
因为他看懂了魏东在写什么。
这根本不是修补,而是在重构。
魏东没有试图在原来的框架上打补丁,而是直接推翻了这个研究生写了半个月的架构,重新设计了一套基于乐观锁机制的索引同步协议。
在2000年,乐观锁的概念只在国外几篇顶级论文里出现过,国内学界还停留在传统的悲观锁思维里。
但魏东写出来的是实实在在的代码。
他先重新定义了索引节点的数据结构,然后加入了一个版本号标记,在并发写入时,不再粗暴地加锁阻塞,而是让每个线程先假设自己能成功写入,提交时再检查版本号是否冲突。
如果冲突,就自动回滚重试。
如果不冲突,就一次性提交。
更可怕的是,他还顺手写了一个内存池管理模块,把原来那种频繁的操作改成了预分配的块内存复用,直接解决了内存泄露的问题。
“你……”唐国栋完全看呆了。
很快,光标就滑到了测试程序的部分。
魏东先写了一个简单的压力测试脚本,模拟三十个并发线程同时写入。
然后,他直接运行了测试程序。
伴随着DOS窗口弹出来,一行行代码像是瀑布一样倾泻而下,速度快得让人目不暇接。
在唐国栋震惊的目光中,压力测试足足跑了十几分钟。
本该崩溃的内存占用曲线,此时稳如老狗。
站在门口的唐棠虽然看不懂屏幕上那些代码,但她看得懂爷爷的表情。
那是一种她从未在爷爷脸上见过的神情。
震惊?困惑?狂喜?
连她都有些分辨不清了。
“你,你这个乐观锁的思路……”唐国栋愣神了半晌,才颤声问道:“是从哪里学的?”