字:
关灯 护眼
渡口文学 > 首富从入职阿里开始薅羊毛 > 第412章 请勿打扰!

第412章 请勿打扰!

    六楼的实验室变了样。

    从北京回来的第二天,林彻下楼看了一次。

    门上的牌子已经换了,老周手写的"请勿打扰"四个字,马克笔写的,字很大,贴得歪了一点但很牢。

    透过玻璃门能看到里面的布局跟之前完全不同了。

    大桌子被推到了靠墙的位置,上面摆了五台显示器和三台服务器的主机箱,线缆用扎带捆成了几束,从桌子下面穿过去,接到墙角的一个集线器上。

    白板被搬到了房间正中间,正面写满了架构图,背面也写了一半,彩色马克笔画的,红蓝黑绿四种颜色分别代表不同的模块。

    桌子旁边加了两张折叠桌,上面放着笔记本电脑和各种充电线。

    有两个工位之间塞了一个行军床,叠得不太整齐,枕头上还放着一件外套。

    十二个人。

    从十一月初到现在半个多月,他们的作息变成了早上九点到晚上十一二点,中间吃饭和休息的时间加起来不超过两个小时。

    有人在里面放了一个电热水壶和一箱泡面,桌子下面堆了一排矿泉水。

    角落里有一个垃圾桶,塞得满满的,泡面盒子和外卖餐盒从桶口冒出来。

    实验室隔壁是技术部的一间小会议室,被他们征用成了临时休息室。

    里面放了三张行军床,轮流睡。

    老周定的规矩是"连续写代码超过四个小时必须休息半小时",但没人当真。

    方远有一次连着干了九个小时,老周看见了把他的键盘拔了,指着隔壁说"睡一个小时再回来"。

    方远去了,四十分钟后回来了,说睡不着。

    老周在里面,林彻透过玻璃看到他站在白板前面,背对着门,左手拿着一支红色马克笔,右手指着白板上的某个位置在跟方远说话。

    方远坐在折叠椅上,面前的笔记本电脑屏幕上全是代码,他一边听一边在键盘上敲什么。

    其他人各自在工位上,有人戴着耳机,有人盯着终端窗口里滚动的日志,有人在纸上写公式。

    林彻没有推门进去,看了一分钟,转身上楼了。

    …………

    十一月下旬,项目进入第三周。

    老周每三天给林彻发一封简短的进度邮件,内容都是一个格式:模块名称、进度百分比、遇到的问题、下一步计划。

    前两周的邮件里"遇到的问题"那栏写的都是常规的技术问题,接口规范不一致、测试数据不够、模拟环境的参数要调。

    第三周的邮件不一样了。

    "遇到的问题"那栏只有一句话:"核心引擎的时序逻辑存在根本性矛盾,正在评估解决方案。"

    根本性矛盾。

    林彻看到这四个字的时候是晚上九点多。

    他在七楼办公室里看邮件,窗外的杭州已经全黑了,远处的灯光像一片安静的星海。

    他打了个电话给老周。

    老周接的时候背景噪音很大,有人在说话,键盘在敲,像是整个实验室都在运转。

    "邮件我看了,什么矛盾?"

    老周的声音有点哑,应该是说了一天话的缘故。

    "央行的清算系统是同步的,强一致性,每一笔交易必须在账本上实时确认了才算完成,我们的可编程逻辑层是异步的,规则执行完了通过回调通知清算系统,问题出在这两个系统对接的地方。"

    "具体呢?"

    "假设一笔100块的定向消费券支付,我们的逻辑层先执行规则:检查商户是否在指定名单里,检查有效期,检查品类限制,规则执行完了,确认可以支付,通过回调通知央行的清算系统扣款,但在我们的逻辑层确认和清算系统实际扣款之间,有一个时间差,这个时间差里如果消费者的账户发生了其他变动,比如同时发起了另一笔支付,就会出现一致性问题。"

    "两笔支付争同一笔钱。"

    "对,双花问题,在同步系统里不存在这个问题,因为每一笔交易都是锁定了再确认的,一笔没完另一笔就排队,在异步系统里,锁定和确认之间有间隔,间隔里什么都可能发生,这个间隔越短问题越小,但完全消除不了,只要是异步的,这个间隔就一定存在。"

    "这个问题在设计阶段没有预见到?"

    "预见到了。"老周的声音比平时低,他说话的时候背景里有人在讨论什么,声音模糊地传过来。

    "我在架构设计阶段就知道会遇到这个问题,但当时的判断是可以通过技术手段把间隔压缩到足够小,小到在实际场景中不会被触发,理论上是对的,实际跑出来发现,压缩间隔的代价是延迟上升,间隔越小,延迟越高,两头不能兼得。"

    林彻没说话。

    "方远这三天一直在想解决方案,"老周说,"他试了两种思路,第一种是在逻辑层加一个预锁定机制,规则执行前先向清算系统申请锁定这笔钱,但这样等于把异步变回了半同步,失去了异步架构的优势,第二种是在逻辑层本地维护一份余额镜像,先在镜像上扣款,再通过回调同步到清算系统,但镜像和真实账本之间也会有延迟差,本质上是把问题往后推了一步。"

    "两种都不行?"

    "第一种否了,第二种跑了一遍,延迟太高,不能用。"

    "延迟多少?"

    "第一版跑出来八百多毫秒,不稳定,有时候更高。"

    800毫秒。

    央行的要求是500毫秒以内。

    demO里的37毫秒是纯逻辑层的延迟,不包含跟清算系统对接的延迟。

    一旦加上对接环节,延迟翻了二十多倍。

    "能优化吗?"

    老周沉默了两秒。

    "在想。"

    电话挂了。

    …………

    那天晚上十一点多,林彻从七楼下到了六楼。

    走廊很暗,只有尽头实验室的灯光从玻璃门里透出来,在地上拉了一道长长的光带。

    走廊里的暖气已经关了,十一月底的杭州夜里有凉意,不算冷但不暖和。

    他走到实验室门口,没推门。

    透过玻璃能看到里面还有七八个人,有的在电脑前敲代码,有的在白板前面讨论。

    方远坐在角落里,面前的屏幕上全是测试数据,一行一行的数字在滚动。

    老周不在白板前面了,坐在折叠桌旁边,面前放着一杯凉透了的茶和一叠手写的草稿纸。

    他在纸上画什么,画了几笔又划掉,再画。

    白板上的架构图已经改了好几版了。

    第一版的痕迹被擦掉了,但马克笔的颜色渗进了白板的表面,留下淡淡的影子。

    现在白板上画的是第二版,方远那个余额镜像方案的架构图,红色的线画了又改,改了又画。

    根本性矛盾。

    他知道冬奥的时间线,知道实战测试会在崇礼,知道断网场景是杀手锏。

    但技术问题不是先知能力解决得了的。

    他知道目的地在哪,知道该选哪条路,但路上的石头要一块一块搬。

    这块石头叫"时序矛盾",搬不开就过不去。

    他站在走廊里看了三分钟,没有人注意到他。

    转身回了七楼。

    电梯里很安静,门关上之后只有嗡嗡的升降声。

    七楼到了,门开了,走廊比六楼更暗,只有电梯口一盏灯亮着。

    六楼的灯还亮着。

    第一版方案被否了。
『加入书签,方便阅读』