比赛场馆设在市科技会展中心的三号厅。
陆鸣到场时,门口已经排起了长队。参赛者大多是二十出头的年轻人,有的手里攥着笔记本电脑,有的聚在一起低声讨论技术方案。每个人脸上都带着一种紧绷的专注,像拉满的弓弦。
他扫了一眼队伍,发现自己身上这件普通的白衬衫和牛仔裤,反倒成了最不起眼的装扮。周围至少有三分之一的人穿着印有公司或实验室Logo的外套,另三分之一背着专业设备包,剩下的那一小撮,看起来跟他也差不多。
没人注意他。
陆鸣等了十分钟,跟着队伍鱼贯入场。
三号厅内部被临时改造成了比赛场地,正中是一块巨大的LED屏幕,屏幕两侧各站着两名工作人员。底下分成几十个工位,每个工位配一台台式电脑、两块显示器、一副降噪耳机。工位之间用半透明的隔板隔开,既不影响视线,又能减少干扰。
陆鸣找到了自己的位置,二十七号,靠左第三排。
他坐下来,把包放好,扫了一眼面前的设备。电脑型号是主办方统一配置的,系统是最新的企业版Linux,预装了标准开发环境。显示器的分辨率很高,连字体边缘的锯齿都能看清。
他打开终端,输了几条命令测试网络和权限,一切正常。
“各位参赛者请注意,初赛将在十分钟后开始。”广播里传来一个女声,平稳清晰,“本次初赛采用现场解题制,共三道技术题,限时三小时。所有代码必须在现场编写并提交至裁判系统,中途不允许使用外部存储设备,不允许联网查询资料。一旦发现作弊,立即取消资格。”
陆鸣点了点头,这点他早有准备。
“第一题,数据处理方向,要求在十五分钟内完成解答,共计三十分。第二题,算法设计方向,限时四十五分钟,共计五十分。第三题,系统架构方向,限时两小时,共计七十分。三题总分为一百五十分。”
广播停顿了几秒,又补充道:“注意,每一题提交后不能修改。请各位合理分配时间。”
陆鸣深吸了一口气,把双手放在键盘上。
比赛开始了。
第一题是数据处理,题目给了十个G的日志文件,要求从中提取出特定模式的所有异常记录,并按时间戳排序输出。难度并不高,但文件量大,对代码的执行效率有要求。
陆鸣几乎没有停顿,直接在脑子里构建出最优算法框架,手指飞快地在键盘上敲击。他用的是C++,自己最熟悉的语言,每一行代码都像从指尖自然流淌出来一样。
三分钟,代码写完。
五分钟,调试通过。
六分半,提交成功。
他看了一眼右上角的计时器,还剩八分半钟。周围传来噼里啪啦的键盘声,显然大多数人都还在埋头苦干。
陆鸣没有急着看下一题,而是端起主办方提供的矿泉水喝了一口,让自己放松下来。
第二题是算法设计,要求实现一个在加权有向图中寻找所有最短路径的变种问题。题目描述不长,但隐含条件相当刁钻——图的数据量达到了百万级节点,传统的Dijkstra算法在这个规模下会直接炸掉内存。
陆鸣盯着屏幕上的题目,脑海里开始高速运转。
他想起昨晚在系统里解锁的那个隐式链路异常诊断技能树。虽然名字听起来跟算法没什么关系,但其中有一个模块专门针对大规模图中的异常链路检测,用的是一种基于边权分布剪枝的近似算法。
那个算法的核心思想,可以在最短路径问题上做变体移植。
陆鸣闭上眼睛,在脑中构建出完整的算法流程。他需要把原始图拆分成若干子图,用哈希映射替代邻接表存储,再把剪枝条件从异常检测改为路径长度阈值。
思路越来越清晰。
他睁开眼,双手重新放在键盘上。
四十分钟后,代码完成。提交,一次通过。
陆鸣长出一口气,整个后背都是汗。
第三题是系统架构方向,要求设计一个高可用的分布式日志收集系统,需要满足每秒百万级的写入吞吐量,并且保证数据不丢失、不重复,支持节点动态扩缩容。
这道题的开放性很大,没有标准答案,但评分标准很明确——架构的合理性、可扩展性、容错能力,每一项都有对应的分值。
陆鸣思考了五分钟,决定采用一致性哈希加多级缓冲的架构方案。他快速画出了系统拓扑图,然后开始用伪代码描述核心组件的实现逻辑。
写到一半的时候,他余光扫到右边工位的参赛者突然停下动作,表情有些慌乱。那个人反复重启电脑,屏幕上始终是黑屏。
紧接着,更远处的工位也有人站起来,朝工作人员招手。
陆鸣皱了皱眉,但没有分心,继续写自己的方案。
就在这时,他面前的显示器突然闪了一下。
屏幕上的代码窗口瞬间消失,取而代之的是一片刺眼的蓝色。然后蓝色也消失了,屏幕彻底黑了下去。
陆鸣愣住了。
他敲了几下键盘,没有反应。按电源键,没有反应。拔掉显示器连接线再插上,依然没有反应。
“出故障了?”他低声说了一句,转头看向四周。
至少有七八个人遇到了同样的问题。有的电脑直接蓝屏死机,有的显示器花屏,有个倒霉蛋甚至连主机都冒出了淡淡的焦味。
工作人员开始沿着过道快速走动,检查设备,用对讲机向后台汇报情况。
“各位参赛者请保持冷静,技术团队正在排查故障原因。”广播里的女声再次响起,语气明显比刚才紧张了一些,“预计故障修复时间……暂不明确。”
“暂不明确?”有人忍不住喊了出来,“那比赛怎么办?时间还在走啊!”
这一声喊出了所有人的焦虑。大家纷纷看向大厅中央的LED屏幕,计时器还在滴滴答答地跳动着。
陆鸣看了一下自己的手表,距离第三题的提交截止时间还有四十五分钟。
他的代码才写到百分之六十。
“所有故障工位的参赛者,比赛时间将统一延长三十分钟。”广播里做出了调整,“但请在设备恢复后尽快提交,延期时间以实际修复时间为准。”
陆鸣深吸了一口气,强迫自己冷静下来。
他低头看着面前漆黑的屏幕,突然想到了什么。
“系统,你能扫描这台电脑的硬件状态吗?”他在心里默默问了一句。
“可以。”星辉系统的回复简洁而直接,“检测显示,当前设备主板供电模块出现异常,原因在于机房负载瞬时过冲导致电压波动。波动周期约十二秒一次,每次持续零点三秒,导致主板保护性断电。”
陆鸣眼神一凝:“有办法修复吗?”
“无法修复硬件损坏。”系统回答,“但可以绕过保护机制。建议:直接通过主机上的调试接口连接备用电源,并使用软件层面的稳压补丁维持运行。”
陆鸣没有犹豫,立刻弯下腰去看主机的侧面。
果然,在机箱背面有一个不太起眼的小接口,标注着“调试专用”。他翻了一下主办方提供的工具包,从里面找出一根数据传输线,但接口对不上。
“这玩意儿一般没人会用。”陆鸣嘀咕了一句。
他忽然想起自己背包里有一根旧式的多合一转接头,是大学时候买来修单片机用的,一直没扔。
他从包里翻出来,插上去,居然正好匹配。
“系统,你说的稳压补丁怎么弄?”
“正在自动生成补丁代码。宿主需以管理员权限打开终端,输入以下指令……”
系统在陆鸣的视野里投射出一串字符。他快速输入,按下回车。
电脑屏幕亮了起来。
不是完整的系统界面,只是一个命令行窗口,黑底白字,像是从废墟里爬出来的幽灵。
但能用了。
陆鸣没有时间感叹,立刻开始继续写第三题的代码。他的手指在键盘上飞舞,一行行代码在命令行的白色光标后不断生成。
周围的工作人员还在忙着排查故障,没人注意到二十七号工位的电脑已经以这种诡异的方式重新启动了。
十五分钟后,陆鸣完成了第三题的全部架构设计。
他检查了一遍,确认没有逻辑漏洞,然后在命令行里找到提交系统的备用端口,手动上传了方案文件。
“提交成功。”系统显示在视野里的绿字,让陆鸣整个人瞬间松弛下来。
他靠回椅背上,感觉全身的肌肉都在发酸,手指微微颤抖。
远处,技术团队终于找到了故障源头,开始逐一修复受损的电脑。广播里通知,比赛时间统一延长四十分钟。
其他故障工位的参赛者也陆续恢复了工作,但每个人脸色都不好看——他们损失了大把时间,而且心乱了。
陆鸣低头看了一眼自己的手表。
他用时二十三分钟,比正常时间少了将近一半。
三十分钟后,全部参赛者提交完毕。
初赛结果当场公布了。
大屏幕上滚动着排名列表,每个人的姓名、工位号、得分,一目了然。
第一名:陆鸣,二十七号,总分一百三十八分。
第二名:林昭,十五号,总分一百一十六分。
第三名:周晏,四号,总分一百零二分。
陆鸣看着屏幕上的名字,愣了好几秒。
他不是没想过晋级,但第一名这个位置,来得太直接,太突然。
“二十七号,陆鸣?”一个戴着工作证的中年男人走到他面前,表情有些复杂,“你怎么修好电脑的?”
陆鸣回过神来,把转接头和调试接口的事简单说了一下,但没有提系统的部分。
“你的备用方案很有创意。”中年男人点了点头,“不过我刚才看了你的代码,前两道题完成度很高,第三题的架构方案……”他顿了一下,似乎在斟酌措辞,“有些处理思路非常老练,不像是应届毕业生的水平。”
陆鸣心头一紧,但脸上不动声色:“我在这类项目上花了大量时间练习。”
“是吗?”中年男人笑了笑,没再多问,转身走了。
陆鸣目送他离开,心里清楚,刚才那番话是个试探。
他收拾好背包,准备离开场馆。刚走出三号厅的大门,就听到身后传来一个声音。
“陆鸣,等一下。”
他转头,看到一个穿着深灰色休闲西装的女人快步走了过来。她看起来不到三十,长发扎成低马尾,戴着一副细框眼镜,气质干练。
“我叫沈瑶,是这次比赛的评审之一。”她伸出手,自报家门,“你在第三题里用的一致性哈希加多级缓冲方案,我很有兴趣,想跟你聊聊。”
陆鸣迟疑了一下,伸手跟她握了握。
“你是怎么想到把边缘节点的缓冲层设计成异步持久化模式的?”沈瑶开门见山,目光很专注,“这个思路很少见,但理论上能把写入吞吐量再提升一个量级。”
陆鸣张了张嘴,一时不知道该怎么回答。
他总不能说,这道题的解法是星辉系统在隐形技能树里反馈给他的优化建议吧?
“我……之前看过一篇国外的技术论文,受到了启发。”他找了个勉强说得过去的借口。
沈瑶盯着他看了两秒,然后笑了:“那篇论文,是不是叫《分布式日志系统中基于一致性哈希的高吞吐优化》?发在去年的SOSP会议上?”
陆鸣愣住了。
他压根没看过那篇论文。
“我猜你没看过。”沈瑶的笑容收敛了几分,眼神变得认真起来,“因为那篇论文是我写的,而且里面并没有提到异步持久化模式。”
陆鸣心里咯噔一下。
“但你说得对。”沈瑶话锋一转,“我写那篇论文的时候,确实考虑过这个方向,但因为时间有限没来得及深入。你提出的方案,恰好补上了那个缺口。”
她停顿了一下,从名片夹里抽出一张卡片递过来。
“这是我的联系方式。如果你愿意,我想请你来我的实验室做一次深入的技术交流。”
陆鸣接过卡片,低头看了一眼:沈瑶,星瀚科技首席架构师。
星瀚科技。那是业内排名前三的AI和分布式系统公司。
他抬起头,看到沈瑶已经转身走进了场馆。
阳光从会展厅的穹顶倾泻下来,照在卡片上,烫金的字体微微发亮。
陆鸣把卡片收好,嘴角不自觉地浮起一丝笑意。
初赛第一名。
星瀚科技的首席架构师主动邀请。
而这一切,只是开始。