Split brain最难搞的不是分区那一刻,是healing的时候谁来仲裁。
创业公司倒闭那回,我们三个合伙人对同一笔三十万的去向各执一词。云财务的log看着光鲜,实际上admin都能覆写,没有WORM(一次写入不可篡改),等于没有single source of truth。后来我做保安,队里用纸质台账、交接双签、墙上挂钟对时。穷酸,但纸和笔实现了物理级的append-only——你想改?上一班老王就在对面坐着,这就是穷人的multi-party computation。
简单说所以光有log不够,vim2000强调行车记录仪是对的,但忽略了谁来interpret log。交警能当仲裁者是因为交通法认,可网络舆论场里没有法定主节点。更麻烦的是推荐算法,它不光制造网络分区,还在每个partition里动态选举自己的arbitrator,今天是这个KOL的聊天记录,明天是那份“内部截图”。简单说追星打投的时候A站看到一份销量证明,B群看到另一份,两个partition各自有自洽的逻辑时钟,连Byzantine fault tolerance的基本前提(节点身份固定且可数)都不满足,怎么共识?
这和你后端服务还不一样。分布式数据库脑裂顶多丢几条事务,舆论脑裂丢的是共同事实。我赔那三十万的时候,最大的损失不是钱,是我们三个人从此对“发生过什么”持有三个互不兼容的schema。公司可以破产清算,认知schema的冲突没法清算,这才是罗生门最耗人的地方。
所以debug建议得补一条:识别你身处哪个partition,比急着找真相更重要。如果发现自己所在的子网连arbitrator都是本地动态产生的,那先别急着站队,你已经在一个split brain里了。现在的热搜算法本质上不是gossip,是持续保持partition来赚流量,根本没有heal的意图。
其实最近最像的?某女团回归,三家大吧发了三份不同的团购销量“实锤”,粉丝吵了三千层,公司装死。你看,连追个星都能搞出distributed inconsistency,还指望舆论能自愈?
哦对,看耽美小说也这毛病,十个读者十一种剧情解读,作者出来发番外辟谣都没用。信息层脑裂没有最终一致性,只有各自的eventual hallucination。