土法炼钢兴趣小组的算法知识备份

【FoundationDB 内核】Unbundled · OCC · TLog · Redwood · Simulation

文章导航

分类入口
databasestorage
标签入口
#foundationdb#unbundled#strict-serializability#occ#sequencer#resolver#transaction-log#redwood#deterministic-simulation

目录

FoundationDB 内核:Unbundled · OCC · TLog · Redwood · Simulation

分布式 KV 对比 已经回答「什么时候选 FoundationDB」;确定性模拟测试 解释了控制非确定性源的方法论;TiKV / HTAP 内核 则把 Multi-Raft 与 Percolator 快照隔离走通。中间仍缺一层:一次 FoundationDB 事务如何经 Proxy、Sequencer、Resolver、TLog 提交,Storage Server 为什么异步应用仍能提供版本化读取,5 秒限制如何约束冲突窗口与恢复

本系列以 FoundationDB 7.x 为主线,写:

系列状态:已完成(2026-07-17)。18 篇已发布。规划见 PLAN.md

版本锚定:FoundationDB 7.x 官方文档、源码与 SIGMOD 2021 系统论文。实验只使用实际运行过的单机 / Docker 环境;不伪造官方 benchmark 之外的性能数字。

适合谁看

在知识栈中的位置

站内内容 本系列关系
KV 选型 distributed/39 第 1、18 篇回链,不复述性能表
确定性模拟方法 distributed/54 第 14 篇钉 FDB 工程落点
SI / Multi-Raft tikv-htap 第 8–9、18 篇对照
单机存储 rocksdbSQLite 单篇 第 12 篇 B-Tree / LSM 边界
FoundationDB 内核 本系列 Unbundled 角色 → 事务 → 恢复 / Layer

一、这个领域最值得关注的 5 个问题

  1. Unbundled 角色如何分工,一次写事务穿过哪几跳? → 第 1–7 篇。
  2. Sequencer + Resolver 如何兑现严格可串行化与 5 秒事务上限? → 第 6、8–9 篇。
  3. TLog 与 Storage Server 如何解耦提交延迟和读路径? → 第 10–12 篇。
  4. 确定性模拟如何把网络、磁盘、时钟变成可重放故障? → 第 13–14 篇。
  5. 何时选 FDB 而非 TiKV / etcd?Layer 边界在哪? → 第 15–18 篇。

二、篇目依赖关系与推荐阅读路径

flowchart TD
  A["01 Unbundled overview"] --> B["02 Client transaction API"]
  A --> C["03 Coordinator"]
  A --> D["04 Proxy"]
  C --> E["05 Role topology"]
  D --> E
  E --> F["06 Sequencer"]
  F --> G["07 Write pipeline"]
  B --> H["08 Resolver OCC"]
  G --> H
  H --> I["09 Strict serializability"]
  G --> J["10 TLog"]
  J --> K["11 Storage Server"]
  K --> L["12 Redwood"]
  C --> M["13 Recovery"]
  M --> N["14 Deterministic simulation"]
  B --> O["15 Record Layer"]
  K --> P["16 Operations"]
  I --> Q["17 Troubleshooting"]
  P --> Q
  O --> R["18 Selection"]
  N --> R
  Q --> R
路径 篇目 适合
必读核心 1 → 5 → 6 → 7 → 8 → 9 → 10 → 18 快速建立坐标系
事务正确性 2 → 6 → 8 → 9 → 17 OCC / 一致性读者
存储与恢复 3 → 10 → 11 → 12 → 13 → 16 存储平台 / 运维
测试方法 1 → 13 → 14 → 17 distributed/54 读者
Layer 与选型 2 → 15 → 18 元数据与应用平台
完整通读 1 → … → 18 系统掌握

三、目录与每篇价值点

第一部分:全景与角色

  1. Unbundled 全景:事务、日志与存储为何拆开
    • SIGMOD 2021 架构锚点;与 distributed/39、tikv-htap 分工。
  2. Client API 与事务模型
    • 冲突范围、自动重试与 5 秒窗口预告。
  3. Coordinator 与集群配置
    • 配置持久化、恢复入口与角色招募。
  4. Proxy:读版本与提交入口
    • Grv / Commit Proxy 分工与批处理。
  5. 角色拓扑与数据流
    • 一张图串联读写路径与扩展边界。
  6. Sequencer:全局版本与恢复
    • read / commit version 分配;纠正「逻辑单点等于无高可用」。

第二部分:事务与严格可串行化

  1. 写事务流水线
    • Client → Proxy → Sequencer → Resolver → TLog。
  2. Resolver 与 OCC
    • read/write conflict range;与 Percolator SI 对照。
  3. 严格可串行化与 5 秒限制
    • 实时顺序、冲突窗口与恢复有界性。

第三部分:日志与存储

  1. Transaction Log:提交点与持久化
    • 多数副本 durable 后提交;与 Storage 异步 apply 解耦。
  2. Storage Server:Shard、版本与读路径
    • 拉日志、版本读取与 shard 迁移。
  3. SSD Engine 与 Redwood
    • SQLite 派生到版本化 B-Tree;与 RocksDB LSM 分工。

第四部分:恢复、模拟与 Layer

  1. 故障恢复:角色招募与恢复 epoch
    • 写暂停、读边界与旧角色隔离。
  2. 确定性模拟:FDB 的工程落点
    • 网络/磁盘/时钟接口替换;与 distributed/54 分工。
  3. Record Layer:记录与二级索引
    • Protocol Buffers、Tuple/Subspace 与索引原子维护。
  4. 运维与容量:角色资源画像
    • 分片热点、备份和灾备边界;不写无来源容量公式。

第五部分:排障与选型

  1. 生产排障:超时、冲突、切换、落后
    • 症状 → 机制决策树。
  2. 选型与阅读地图
    • FoundationDB vs TiKV vs etcd;开放问题与系列收束。

四、与相邻系列的分工

话题 本系列 相邻内容
三类 KV 横向选型 第 18 篇回链 distributed/39
确定性模拟方法论 第 14 篇 FDB 工程映射 distributed/54
Multi-Raft / Percolator 第 8–9 篇只作事务对照 tikv-htap
LSM 存储 第 12 篇对照 rocksdb
SQLite 内核 第 12 篇只讲 SSD Engine 历史 SQLite 单篇

参考


返回 数据库索引 · distributed/39 · tikv-htap

同主题继续阅读

把当前热点继续串成多页阅读,而不是停在单篇消费。


By .