“徐总,您这个问题,是我在设计这个方案时花了最长时间思考的问题。”
他在白板上画了一个时序图。
“降级切换期间,仲裁者会先暂停接收新的事务请求,但不会立即断开与参与者的连接。它会等待一个‘排空窗口’——大约二十毫秒——让己经在管道中的prepare和it完成。二十毫秒后,还在管道中的事务,全部回滚。回滚之后,切换完成,新的事务用纯逻辑时钟的时间戳重新开始。”
他把马克笔放下。
“这二十毫秒的排空窗口,是我在压测中找到的最优值。太短,正常事务会被误伤。太长,切换延迟不可接受。二十毫秒,误伤率低于十万分之一,切换延迟控制在六十毫秒以内。”
他看着徐景辉。
“就像收费站要临时换收费系统。管理员先喊一声‘都别进新车道了’,然后等己经在收费通道里的车全部通过。等了二十秒,还在通道里没交费的,让他们倒回去。通道清空之后,换新系统,后面的车重新排队进来。被要求倒回去的车,十万辆里不到一辆。”
徐景辉靠在椅背上,看着白板上那张密密麻麻的架构图,沉默了很长时间。
会议室里没有人说话。方敏的目光在白板和徐景辉之间来回跳转,何岩手里的笔掉在桌上浑然不觉,宋鹏的嘴巴微微张着。陆鸣端着茶杯的手悬在半空中,忘了放下。孔建明靠回椅背,嘴角的弧度越来越大。
徐景辉终于开口了。
“这个方案,你是什么时候想出来的?”
“方案发布后的第三天。我在压测中发现了您刚才说的那个问题,花了两天重构。”
徐景辉点了点头,然后做了一个让所有人都没想到的举动——他站起来,走到白板前面,拿起另一支马克笔。
“你这里,计数器值的比较逻辑,可以用向量时钟的思想再做一层优化。”
他在陈星的架构图上加了两笔。
“不是单纯比较计数器的大小,而是比较一个二元组——计数器值加上节点ID。这样在计数器值相等的时候,可以用节点ID打破平局,避免二次投票。”
陈星看着徐景辉加的那两笔,眼睛亮了。
“向量时钟。我想到过,但没有采用,因为担心引入额外的复杂度。但您这个二元组的方案,复杂度几乎没有增加,却彻底解决了平局问题。”
“你想到过,为什么没采用?”
“因为没有人能跟我讨论。我自己想了半天,觉得可能过度设计了,就放下了。”
徐景辉看着他,目光里的那种锐利消退了一些,取而代之的是一种很复杂的东西。像是欣慰,又像是感慨。
“现在有人跟你讨论了。”
两个人站在白板前面,马克笔你来我往。架构图被画得越来越复杂,也越来越清晰。方敏不知什么时候站了起来,走到白板旁边,掏出手机拍照。何岩和宋鹏也围了过来,一开始只是听,后来开始插话提问。陈星每一个问题都接得住,徐景辉每一个建议都打在最关键的地方。
秦若寒站在旁边,手里的翻页笔不知什么时候放下了。她看着陈星的背影——他站在一群比他大十几岁的行业前辈中间,马克笔在白板上飞速移动,语速不快但每一个字都精准得像手术刀。
孙浩缩在角落里,侧过头对刘敏小声说了一句:“陈老师跟徐景辉……他们在用我们听不懂的语言说话。”
刘敏点了点头。她的眼眶有点红。不是因为难过,是因为她第一次亲眼看到,自己每天写的那些代码、调的那些参数、熬的那些夜,原来可以触碰到这个行业最顶尖的那一群人的高度。
陆鸣端着茶杯,侧过头对孔建明说了一句:“沈爷说得对。陈星这把刀,建明用了一个月。今天,锦和看到了。”
孔建明没有说话。他只是看着白板前面那个高高瘦瘦的年轻人,嘴角的弧度越来越大。
技术讨论持续了两个半小时。
从仲裁者方案到分布式事务,从分布式事务到云原生架构,从云原生架构到AI在SaaS中的应用。白板被擦掉了三次,又画满了三次。方敏的手机相册里多了西十多张照片,何岩的笔记本记满了五页,宋鹏的MacBook上开着一个临时建的思维导图,节点己经多到需要缩放才能看全。
下午一点,徐景辉放下马克笔。
“吃饭。”他转过身看着孔建明,“孔总,借你们食堂用用。”
— 以上为《我打工有千倍奖励》第 41 章 第41章 概念技能 全文。都市062书院 24 小时同步更新,欢迎收藏阅读下一章。 —