凌晨一点。

  林彻没有睡。

  十二月十五号的雨下了一整晚,窗外的声音从沙沙变成了滴答,雨小了但没停。

  办公室的灯开着,桌上的茶早就凉透了。

  他把老周的邮件看了三遍,看完之后关掉邮件,打开了一个空白文档,什么都没写。

  空白文档在屏幕上亮了十分钟。

  他关掉了电脑,站起来,拿了一支笔,没拿别的东西。

  坐电梯下到六楼。

  走廊里暗的,只有尽头实验室的光透出来。

  跟之前每次看到的一样,但今天走过去的时候他注意到走廊的地板上有几个脚印,潮的,应该是有人出去买宵夜回来踩进来的雨水。

  他推开了实验室的门。

  …………

  里面还有四个人。

  老周在白板前面,面对着白板坐着,椅子反过来骑着坐的,两条胳膊搭在椅背上,下巴搁在胳膊上,像在发呆。

  方远在角落的工位上,屏幕亮着但他没在看屏幕,双手抱着后脑勺靠在椅背上,眼睛闭着,不知道是在想事情还是在打盹。

  另外两个工程师在折叠桌那边,一个在喝泡面汤,一个在看手机。

  林彻进来的时候四个人都看了他一眼。

  凌晨一点,林总来六楼了,没人问为什么。

  老周从椅子上站起来,他的卫衣皱了,下巴上有一圈青色的胡茬,眼睛有血丝但亮着。

  "林总。"

  "白板给我用一下。"

  老周让开了。

  白板上写满了东西。

  密密麻麻的架构图,红蓝黑绿四种颜色缠在一起,箭头交叉,方框嵌套,有的地方被擦掉了又重新画上去,擦掉的痕迹和新画的线条叠在一起,像一幅看不懂的抽象画。

  白板的右下角有一串数字,方远写的延迟拆解:18+22+310+195+65=610。

  610。

  林彻看了白板大概三十秒。

  然后他拿起一块白板擦,把白板右半边的内容擦掉了。

  方远睁开了眼睛。

  他没说话,但坐直了。

  喝泡面的那个工程师也停下来了,放下了碗。

  林彻从笔槽里拿了一支黑色马克笔。

  他在白板右半边画了两个方框。

  上面一个,下面一个。

  上面的方框写了三个字:"央行账本"。

  下面的方框写了三个字:"微光逻辑"。

  两个方框之间画了一条线。线的旁边写了四个字:"异步回调"。

  然后他在下面的方框里画了一条虚线,把它分成了左右两半。

  左边写:"规则引擎"。

  右边写:"本地账本"。

  "本地账本"三个字下面,他画了一个小箭头,指向上面的"央行账本",箭头旁边写了两个字:"最终一致"。

  画完了,放下笔。

  白板上只有这些东西。

  两个方框,一条实线,一条虚线,三个箭头,不到二十个字。

  跟左半边那密密麻麻的架构图比起来,像是两个世界的产物。

  …………

  实验室里安静了大概五秒。

  老周站在他后面,盯着白板右半边看。

  他的呼吸声变了,从刚才疲惫的均匀变成了不均匀的,像是在憋气。

  "本地账本……"他低声说。

  林彻没说话。

  "不用镜像同步,"老周的声音开始快了,"不是维护一份央行账本的副本,是在逻辑层本地建一个独立的账本。

  本地账本只记录可编程逻辑相关的状态,不记录完整的余额信息。

  规则引擎执行的时候只查本地账本,不查央行账本。

  执行完了再通过异步回调把结果告诉央行,央行账本做最终确认。"

  他停了一下。

  "310毫秒的镜像同步没了。"

  方远从椅子上站起来了。

  "但是一致性呢?"方远说,"本地账本和央行账本之间如果不同步,双花问题怎么解决?"

  老周没有看方远,他还在看白板。

  "不需要实时一致,"老周说,语速越来越快,"最终一致就够了,本地账本记录的是'这笔钱正在被一个规则占用',不是'这笔钱已经被扣了',占用状态锁定这笔钱,其他交易看到占用状态就排队,规则执行完了,回调通知央行,央行做最终扣款,如果回调失败了,占用状态自动释放,钱回到可用状态。"

  "最终一致……"方远在脑子里跑了一遍逻辑。

  "双花问题被占用锁解决了,"老周说,"不需要镜像同步,不需要央行实时确认,本地账本的占用锁就是防双花的机制,310毫秒没了,195毫秒的回调通信变成了后置环节,不在主链路上,不影响用户体感延迟。"

  他转过身看着林彻。

  "18加22加65,105毫秒。"

  105毫秒。

  远低于500毫秒的要求。

  甚至比demO里的37毫秒只高了不到70毫秒,因为加上了清算确认的65毫秒。

  但这65毫秒是后置的。

  用户感知到的延迟只有规则编译加规则执行,40毫秒。

  清算确认在后台异步完成,用户付完钱走了,后台再慢慢对账。

  "你怎么想到的?"老周问。

  林彻没回答。

  他把笔放回笔槽里。

  白板右半边的图很简单,两个方框,一条实线,一条虚线,三个箭头。

  跟左半边两周的迭代痕迹比起来,干净得有点不真实。

  这个思路不是先知能力给他的。

  上辈子没有这个东西,没有可编程货币引擎,没有异步架构,没有本地账本加最终一致性的方案。

  这些都是这辈子的产物。

  他能想到这个思路,不是因为他"知道"答案,是因为他看过太多分布式系统的架构文章,读过太多关于区块链共识机制和支付系统设计的论文,这些东西在他脑子里沉淀了很久,在某个凌晨一点的瞬间被眼前的问题激活了。

  不是先知,是积累。

  老周看了他一眼,那个问题没有再问第二遍。

  "今晚试。"老周说。

  他转身走向方远的工位,方远已经坐下了,手放在键盘上,等着老周说开始。

  "重写本地账本模块,"老周说,"从零写,占用锁机制,最终一致性回调,方远你写核心逻辑,小李你写锁管理,我写回调接口,今晚出原型。"

  三个人的手同时落在了键盘上。

  …………

  林彻站在白板旁边看了一会儿。

  键盘声响起来了。

  三个人的敲击节奏不一样,方远快而密,老周慢而稳,小李介于两者之间。

  泡面的味道还在,混着马克笔的气味和凌晨的凉意。

  门外走廊的地板上还有那几个潮湿的脚印。

  白板左半边是两周的努力。

  右半边是刚才画的五分钟。

  两周的努力不是白费的。

  没有那610毫秒的拆解,没有方远对五个环节的精确分析,就不知道瓶颈在镜像同步的310毫秒。

  不知道瓶颈在哪,就不知道该砍掉什么。

  他转身走出了实验室。

  门在身后轻轻关上,走廊里暗的,地板上的脚印已经干了一半。

  电梯到了七楼,门开了,走廊比六楼更安静。

  六楼的键盘声他已经听不到了。

  但他知道那三个人今晚不会停。

  "今晚试。"老周站起来了。
为更好的阅读体验,本站章节内容基于百度转码进行转码展示,如有问题请您到源站阅读, 转码声明
圣墟小说网邀请您进入最专业的小说搜索网站阅读首富从入职阿里开始薅羊毛,首富从入职阿里开始薅羊毛最新章节,首富从入职阿里开始薅羊毛 圣墟小说网
可以使用回车、←→快捷键阅读
开启瀑布流阅读