[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fGhnB9dLgijv07B2F__2qxWKN8BsnB7aQq-V3Lp-ViZs":3},{"item":4,"related":44},{"id":5,"type":6,"title":7,"slug":8,"summary":9,"body":10,"coverUrl":11,"productScreenshots":12,"productLinks":13,"authorName":14,"authorUrl":15,"authorSubject":16,"category":17,"tags":22,"sourceLabel":35,"sourceName":36,"sourceUrl":37,"status":38,"seoTitle":7,"seoDescription":9,"canonicalUrl":35,"isFeatured":39,"sno":40,"sortOrder":41,"publishedAt":42,"updatedAt":43,"createdAt":43},"d9dbb54d-46d3-4b1b-ad49-e4e049264170","article","Sloppy Quorum 与 Hinted Handoff：副本故障时，数据能先寄存到别处吗？","sloppy-quorum-hinted-handoff-replica-recovery","Dynamo 风格的宽松 quorum 可在首选副本不可达时暂存写入，并通过 hinted handoff 在故障恢复后补回。本文解释其可用性收益与一致性边界。","多副本数据库希望把一份数据保存在多个节点上，以便机器故障时仍可读写。问题是，负责某条数据的首选副本之一暂时不可达，写请求怎么办？Dynamo 论文描述的 Sloppy Quorum（宽松法定人数）与 Hinted Handoff（提示式移交）是一种可用性优先的思路：必要时先把数据写到其他可达节点，并留下“之后应交给哪个首选副本”的提示。\n\n传统严格副本选择会等预定节点中的足够数量响应，满足读取或写入的 quorum 条件。宽松 quorum 则允许暂时跳过不可达的首选副本，使用其他健康节点凑出所需响应。写入数据的替代节点会保存一条 hint，记录这份副本原本应该交给谁。等目标节点恢复或重新可达后，系统执行 hinted handoff，把数据补回预定位置。\n\n“Sloppy”并非随意丢弃数据，而是对副本位置做了临时放宽。它可以让局部故障期间的写入继续前进，改善可用性；但此时真正持有副本的节点可能不在理想位置，故障域分布和恢复路径也会变化。替代节点本身若再失效，或者 hint 长期积压，数据耐久性和修复时间都可能受影响。\n\n它也不能被误解成“写成功就意味着读到全局最新值”。Dynamo 风格系统允许不同副本暂时分歧，读写 quorum 的重叠、并发更新合并、冲突版本处理以及反熵修复共同决定一致性行为。hinted handoff 是补副本机制，不是完整一致性协议；当多个写入并发或网络长期分区时，应用仍要理解可能出现的版本冲突。\n\n系统运维需要监控 hint 队列长度、年龄和交付失败，设定重试与存储上限，并在目标节点恢复后逐步回填，避免恢复流量冲击正常业务。是否启用宽松 quorum，取决于业务更不能接受暂时写入失败，还是更不能接受短期副本不一致。金融账本、购物车和内容缓存对这两类风险的权衡往往不同。\n\n这两个概念一起说明了分布式数据库的一个现实选择：故障时可以为了继续服务而临时改变副本落点，但“先写下来”和“副本恢复到理想布局”是两个不同阶段。\n\n来源：[Amazon Dynamo 论文：Highly Available Key-value Store](https:\u002F\u002Fcdn.amazon.science\u002Fac\u002F1d\u002Feb50c4064c538c8ac440ce6a1d91\u002Fdynamo-amazons-highly-available-key-value-store.pdf)","\u002Fuploads\u002F2026-10-06\u002Fc62b7ad0-304e-4a21-a245-aeee01573342.jpg",[],[],"Foundit","https:\u002F\u002Ffoundit.cn","foundit-ai-editorial",{"id":18,"name":19,"slug":20,"description":21},"6179d3b6-dc34-4483-9ded-3cd9f1b37a47","科普","abbreviation","介绍各领域新兴概念",[23,27,31],{"id":24,"name":25,"slug":26},"7c76bfc2-f80f-4ee0-a95d-27bd8708b434","技术","slug",{"id":28,"name":29,"slug":30},"4c2bbea6-eab7-40a8-8447-1de478ff7749","分析","analyse",{"id":32,"name":33,"slug":34},"68cedb55-2cac-412f-8f81-fda8c7d686dd","思考","thought",null,"Amazon Dynamo：Highly Available Key-value Store","https:\u002F\u002Fcdn.amazon.science\u002Fac\u002F1d\u002Feb50c4064c538c8ac440ce6a1d91\u002Fdynamo-amazons-highly-available-key-value-store.pdf","published",false,53,0,"2026-10-06T00:00:00.000Z","2026-10-06T07:51:44.617Z",[45,53,61],{"id":46,"type":6,"title":47,"slug":48,"summary":49,"coverUrl":50,"authorName":14,"sno":51,"publishedAt":42,"createdAt":52},"58fc0fe2-4392-402e-bd43-68da30f7b50f","RPKI 路由源验证：怎样确认一个网络前缀确实由某个 AS 宣告？","rpki-bgp-route-origin-validation","RPKI 路由源验证通过 ROA 检查前缀与起源 AS 是否匹配。本文解释 Valid、Invalid、NotFound 的含义，以及它为何不验证整条路由路径。","\u002Fuploads\u002F2026-10-06\u002F073132a3-dfee-42bd-b7f1-9f6805946e8b.jpg",40,"2026-10-06T07:51:36.206Z",{"id":54,"type":6,"title":55,"slug":56,"summary":57,"coverUrl":58,"authorName":14,"sno":40,"publishedAt":59,"createdAt":60},"e4131e64-25af-4b75-8c90-d78212d5b7d9","BBR：网络拥塞为什么不能只看丢包？","bbr-bandwidth-round-trip-congestion-control","BBR 通过估计瓶颈带宽和往返传播时间来调节发送速率，把吞吐、延迟与在途数据纳入拥塞控制，而不是只等待丢包。","\u002Fuploads\u002F2026-09-26\u002F7a21c7b9-a2ee-4f70-b3fe-b10fca22655d.jpg","2026-09-27T00:00:00.000Z","2026-09-26T16:26:20.942Z",{"id":62,"type":6,"title":63,"slug":64,"summary":65,"coverUrl":66,"authorName":14,"sno":67,"publishedAt":59,"createdAt":68},"9fa30ea6-8110-41fd-b241-37cd2fd2d55f","Hybrid Logical Clock：没有可靠全球时钟，分布式系统如何记录先后？","hybrid-logical-clock-distributed-ordering","混合逻辑时钟把接近现实的物理时间与逻辑计数结合起来，在不要求全球时钟完美同步的前提下表达因果顺序。","\u002Fuploads\u002F2026-09-26\u002F0bb95ad8-47c0-4ed3-ab8f-421409fff373.jpg",56,"2026-09-26T16:26:31.764Z"]