工作原理
客户端把写入发给协调节点。协调节点通常转发给 N 个副本。如果某个首选副本宕机或不可达,协调节点把写入发给另一个健康节点,并记录提示:目标节点、变更和时间戳。只要足够多的副本确认,写入仍可满足一致性级别。目标恢复后,提示被重放,通常会延迟一段时间以避免压垮刚恢复的节点。
提示有生命周期。它们会在配置的窗口后过期,停机时间超过该窗口的节点会错过写入。提示也消耗存储和重放带宽。如果提示存储本身失败,数据只能依靠反熵修复恢复。
宽松法定人数
提示移交常与宽松法定人数一起出现:协调节点在分区期间接受写入到首选集合之外的节点,以维持可用性。后续读法定人数可能不包含持有提示的节点,因此即使表面上满足 R + W > N,客户端也可能读到过期数据。严格法定人数会拒绝写入,保住重叠保证,但牺牲可用性。
何时使用
当短期瞬时故障期间的可用性比每个副本立即一致更重要时使用提示移交:购物车、会话状态、时序数据摄入。不要把它当作唯一的修复机制。长时间中断、磁盘丢失或提示被删除,都需要反熵修复。
权衡与示例
好处是减少失败写入,并加快短暂故障后的恢复。代价是额外存储、重放负载和更弱的一致性叙事。提示还可能乱序到达,因此目标节点必须用时间戳或版本向量解决冲突。
示例:三副本键空间,RF=3,写入使用 QUORUM。节点 C 宕机,协调节点把写入发给节点 D,并为 C 保存提示,写入仍获得两个确认。C 恢复后,D 重放提示。如果 C 停机超过提示窗口,就必须依靠定期修复来比较并协调副本。