N5.10.3consistency delay设计研究

网络延迟会让参与者对同一物体状态的感知短暂不一致

别名: 状态不同步 · 短时不一致 · eventual consistency · 延迟分叉

概念解释

你看见盖子已经盖上,对方还在往开启的口里放零件——不是谁眼花,是那次状态更新还在路上。一致性延迟(consistency delay)让参与者在几百毫秒里各自握着同一物体的不同版本。窗口一过会对上,但窗口里做出的动作(继续放、已经松手、开始下一步)会按错误版本提交。

这是物体状态的短暂分叉,不是「他站在哪」没对齐。人的位置同步是另一条链路。

机制

权威状态在一台主机或一份复制协议里。本地为了手感会立刻模拟自己的操作(乐观更新),别人的操作要等报文。于是出现两种画面:自己这边盖子已合,对方那边口还开着。物理协作里光和声几乎同时到达所有眼睛;网络把「同一时刻」拆开了。人用眼前的版本做决策,决策一旦发出,对账到来时就变成一次冲突或一次莫名其妙的跳变。

航位推算、插值、状态和解可以让分叉看起来平滑,但平滑不是一致:对方仍可能在你已关闭的口里放东西。若界面把平滑动画当成「已经双方同意的状态」,人会在和解完成前启动下一步。

怎么研究

受控延迟的共同操作:在实验室注入 50–300 ms 的单向延迟和抖动,让两人轮流或同时改同一物体的开合、颜色、位置。记录双方报告的「当前状态」是否一致,以及基于过时状态发出的错误操作。

网络因子:平均延迟、抖动、丢包、是否乐观更新。 行为指标:状态不一致持续时长、过时操作次数、跳变引发的撤销、主观「他是不是没看见」。

无线局域网的「感觉挺快」不够。要把延迟当作自变量拨到 overt 的档,才能看见分叉。

边界

同室、走本地短距同步且延迟低于动作时间常数时,分叉短到决策插不进去,可以不做显式提示。对延迟不敏感的状态(房间灯开关、很少改的标签)短暂不一致代价低。权威在云端、跨城协作时,分叉是常态,不能靠「网再快点」消除。物体状态一致解决不了指向偏差:两人坐标没对齐时,即使盖子开合双方一致,指「那个口」仍会指错。仲裁规则处理的是冲突如何收场,不消除分叉本身——两者要叠用。

怎么落地

  • 对会触发下一步的状态(开/关、锁定、装入),在未确认对端已收到前不要把它画成最终态;用「正在同步」或双端都未确认的中间外观。
  • 乐观更新只用于连续拖动的中间帧;提交点(放下、拧紧、删除)等权威回执。
  • 和解时若会跳变,给一个可感知的过渡,并允许撤销那次基于过时画面的操作。
  • 验证:注入约 200 ms 延迟,让 A 盖上盖子、B 在同一秒往口里放零件。B 的零件不应在无提示的情况下消失或穿模;应看到状态尚未对齐。两边都以为自己成功、对账后物体乱套,分叉就被当成了真相。

延伸

  • 同组N5.10.1 化身姿态是传递他人意图的主要线索,缺失时协作效率下降 · N5.10.2 共享物体的同时操作需要明确的控制权仲裁规则 · N5.10.4 设备能力不同的参与者共处一室时,体验需对齐到最低能力设备 · N5.10.5 协同任务中指向手势的准确性依赖参与者位置的精确同步
  • 相邻N5.05 共享空间 · N5.09 空间锚定与持久化
  • 站内检索consistency delay · optimistic update · state divergence

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/N5.10.3