跳转到主要内容

Storage

2 篇
  • 多池删除:失败时保住最新副本

    发布于 设计

    DesignS3StoragePerformance

    多池删除:失败时保住最新副本

    2026 年 10 月 24 日决定:合并修正后的 PR #257。 提交 aafe4f8886 修复了 issue #256 报告的多池删除缺陷,并补齐请求开始之后的执行期故障保护。核心不变量是:先完成其他池的旧副本清理,再删除决定当前读取结果的权威副本。 Denis Babchuk 报告了该问题并提交了初始补丁。代码评审复现了故障,发现批量删除在通过在线盘数预检查后仍存在执行期故障窗口,随后补充分阶段执行、逐项响应身份保持、部分删除重试以及共享分层对象保护。 背景与前置工作 SILO 采用按 …

    2026 年 10 月 24 日决定:合并修正后的 PR #257。 提交 aafe4f8886 修复了 issue #256 报告的多池删除缺陷,并补齐请求开始之后的执行期故障保护。核心不变量是:先完成其他池的旧副本清理,再删除决定当前读取结果的权威副本。 Denis Babchuk 报告了该问题并提交了初始补丁。代码评审复现了故障,发现批量删除在通过在线盘数预检查后仍存在执行期故障窗口,随后补充分阶段执行、逐项响应身份保持、部分删除重试以及共享分层对象保护。 背景与前置工作 SILO 采用按 …

  • 多池覆盖亲和:为何最终没有采纳 #245

    发布于 设计

    DesignS3StoragePerformanceReview

    多池覆盖亲和:为何最终没有采纳 #245

    2026 年 10 月 24 日决定:不合并本次测试的多池覆盖亲和补丁(PR #245)。 该方案解决了跨池覆盖遗留旧副本的空间占用问题,但无论完整策略还是仅限普通无版本覆盖的收窄策略,都未能在性能测试中达到可接受的权衡。两个实验分支(codex/healthy-pool-affinity 与 codex/unversioned-pool-affinity)已保留归档,服务端 main 分支保持原状。 Denis Babchuk 提出的思路是:覆盖已有对象时,优先写回已存放该对象的池。代码评审发 …

    2026 年 10 月 24 日决定:不合并本次测试的多池覆盖亲和补丁(PR #245)。 该方案解决了跨池覆盖遗留旧副本的空间占用问题,但无论完整策略还是仅限普通无版本覆盖的收窄策略,都未能在性能测试中达到可接受的权衡。两个实验分支(codex/healthy-pool-affinity 与 codex/unversioned-pool-affinity)已保留归档,服务端 main 分支保持原状。 Denis Babchuk 提出的思路是:覆盖已有对象时,优先写回已存放该对象的池。代码评审发 …