引言:为什么多人改同一个表格这么难?
在公司里,我们经常需要几个人同时在一个在线表格里填数据。假如张三在第2行插入了一行,李四同时在原来的第3行修改数据,如果没有一种聪明的机制,系统就会乱套,李四的数据可能会填错位置,甚至覆盖掉别人的内容。
为了让大家能顺畅地“同时编辑”,且保证每个人看到的结果一模一样,技术人员发明了多种“冲突处理机制”。这份报告将用最通俗的语言,为你讲透这些机制是怎么工作的,以及市面上的大厂产品都用了什么技术。
两大核心门派:OT 与 CRDT
在线协同领域最主流的技术有两大流派:OT(操作转换) 和 CRDT(无冲突复制数据类型)``。
1.OT (操作转换) —— 尽职的“中央交警”
它是怎么工作的?
你可以把OT理解为一个拥有绝对权力的“中央交警”(服务器)。当你和同事同时修改表格时,你们的操作都会发送给交警。交警会根据你们的先后顺序,对操作进行“转换”(比如帮你把要修改的行数悄悄+1),然后再分发给所有人,确保大家看到的结果一致``。
大白话优缺点:
- 优势: 懂“大局观”。它能听懂人话,比如“把这十个单元格合并”、“撤销刚才的格式刷”。因为它有中央服务器把控,非常适合做严格的权限控制(比如某些单元格不让张三改)
[1]。另外,它能完美处理 Excel 中最让人头疼的“公式随位置变动而自动更新”的问题[1]。 - 劣势: 服务器压力大,网络一旦断开或者极度卡顿,本地攒了一堆操作,重新连网时服务器得算半天,甚至直接崩溃。
2.CRDT (无冲突数据类型) —— 聪明的“自动驾驶”
它是怎么工作的?
CRDT 取消了“中央交警”,给每一个文字、每一个单元格都打上了一个“全球唯一的身份证号”。每个人修改时,都是针对这个身份证号去改。因为身份证号是固定且排好序的,所以不管谁的网络慢、谁的操作先到,大家的电脑按照内置的数学规则一合并,结果天然就是一致的``。
大白话优缺点:
- 优势: 极其适合“弱网”或“离线”办公
[2]。你在飞机上没网也能改,下了飞机连上手机热点,系统自动就能和同事的修改完美融合。而且不需要昂贵的中央服务器算力。 - 劣势: 占内存,因为要存大量看不见的“身份证号”和被删除的“历史痕迹”(墓碑)。此外,它太关注微观数据,导致它很难理解“整体撤销”或“复杂的跨表公式计算”这种宏观操作。
其他协同机制:还有哪些玩法?
除了绝对主流的 OT 和 CRDT,历史上和某些特定场景下,还有这几种机制``:
1.差分同步 (Differential Synchronization, 简称 DS)
- 原理: “找不同”。系统会定期对比你电脑上的文档和服务器上的文档有什么区别(打补丁),然后像拉链一样把两边的差异合并起来``。
- 特点: 很好理解,不需要像 OT 那样设计极其复杂的转换规则``。但缺点是每次都要对比,极其消耗网络带宽和计算资源,不适合超大型的在线表格。
2.悲观锁 (Pessimistic Locking / 区域锁定)
- 原理: “我正在改,你等着”。当一个人光标停在某个单元格或某一行时,系统直接把这块区域锁死,其他人只能看不能改``。
- 特点: 最简单粗暴,绝对不会产生冲突。但体验很差,无法实现真正的“丝滑”同时编辑,目前多用于老旧系统或一些对严谨度要求极高的财务核算系统中。
3.基于事件流 / Git 分支模式 (Event Sourcing / Three-way Merge)
- 原理: 就像程序员写代码一样,每个人的修改都是一条时间线。如果两个人改了同一个地方,系统会弹窗提示“产生冲突”,让人工来决定保留谁的``。
- 特点: 适合离线编辑很久后的一次性大合并,但不适合每秒都在发生变化的实时在线文档。
市场揭秘:大家都在用什么?
在真实的商业世界里,技术选型往往取决于产品想解决什么问题。
OT 阵营:传统复杂表格的“绝对霸主”
只要是你想用来替代传统 Excel,有复杂的跨表公式、需要严格的部门权限控制,基本都选了 OT[1]。
- 海外代表: Google Docs / Google Sheets
[3]、Microsoft Office Online[4]。 - 国内代表(几乎全包):
- 飞书文档 / Univer: 飞书自研的底层引擎 Univer 明确表示,因为企业级客户对权限控制和全局历史记录要求极高,所以坚定选择了 OT 架构
[1]。 - 腾讯文档 / 石墨文档 / 钉钉文档: 作为国内主流的在线协同文档,处理传统的 Word 和 Excel 模式时,底层核心协同调度普遍采用了以 OT 为基础的架构(部分会在富文本或评论流中混用其他技术)``。
- 飞书文档 / Univer: 飞书自研的底层引擎 Univer 明确表示,因为企业级客户对权限控制和全局历史记录要求极高,所以坚定选择了 OT 架构
CRDT 阵营:新型多维表格与笔记应用的“新贵”
如果产品不再强调复杂的“单元格公式(如 =A1+B2)”,而是偏向于“结构化数据库”或“无网也能写的笔记”,那么 CRDT 是首选``。
- 海外代表:
- Airtable: 新一代多维表格的鼻祖,非常依赖 CRDT 来处理极高并发的外部 API 写入和跨系统的双向同步
[5, 6]。 - Notion / Figma: 偏向块状编辑和设计,利用 CRDT 的特性来保证离线状态下的修改同步
[2]。
- Airtable: 新一代多维表格的鼻祖,非常依赖 CRDT 来处理极高并发的外部 API 写入和跨系统的双向同步
- 国内代表:
- 各种“多维表格”(如飞书多维表格、钉钉宜搭数据表等): 当应用场景从“算账的Excel”变成“管理项目进度的业务表”时,每行数据彼此独立,此时引入 CRDT(或类似机制)能大幅提升多端同步的效率和稳定性。
总结:如何选型?(用一句话概括)
- 选 OT: 如果你要做一个**“功能强大、公式复杂、权限要求极高、跟 Excel 一样”**的在线表格,选 OT。虽然开发难度大,但它是目前唯一经过大厂亿级用户验证的成熟方案。
- 选 CRDT: 如果你要做一个**“偏向项目管理、数据库记录、要求离线也能用、大家各自填各自数据”**的新型多维表格或笔记,选 CRDT。它架构轻量,能给你带来极度丝滑的弱网同步体验。
- 其他机制(锁/找不同): 一般作为辅助手段,不再作为现代实时协同产品的主力核心。