【FoundationDB 内核】Unbundled 全景:事务、日志与存储为何拆开
以 SIGMOD 2021 为锚点,厘清 FoundationDB 控制面与数据面角色分工,说明一次事务穿过 Proxy、Sequencer、Resolver、TLog、Storage 的路径,并与站内 distributed/39、tikv-htap 划清边界。
发布来自土法炼钢兴趣小组的知识、笔记、进展和应用。主题包括数据结构和算法、编程语言、网络安全、密码学等。
共 21 篇文章 · 返回首页
以 SIGMOD 2021 为锚点,厘清 FoundationDB 控制面与数据面角色分工,说明一次事务穿过 Proxy、Sequencer、Resolver、TLog、Storage 的路径,并与站内 distributed/39、tikv-htap 划清边界。
钉住 FoundationDB 客户端事务契约:读写缓冲、冲突范围、@transactional 自动重试,以及 5 秒上限如何约束应用设计——机制证明留给第 8–9 篇。
说明 Coordinators 如何用磁盘 Paxos 持久化事务系统配置、Cluster Controller 如何招募角色,并划清『配置共识』与『用户 mutation 共识』的边界。
拆解 FoundationDB 7.x 中 Grv Proxy 与 Commit Proxy 的分工:如何发放 read version、如何编排提交,以及批处理与 Ratekeeper 如何保护 Sequencer。
用一张读写总图串联 FoundationDB 各角色,标明哪些可水平扩展、哪些是逻辑单例,并与 TiKV 多组件分离作机制对照。
说明 Sequencer 如何分配 read version 与 commit version、为何是逻辑单点而非无高可用,以及世代恢复如何与版本推进衔接。
钉住 FoundationDB 一次写事务的提交路径:Client 经 Commit Proxy 取 commit version、Resolver 做 OCC、TLog 多数持久化后才向客户端返回成功;并划清「提交成功」与「Storage Server 可读」之间的边界。
拆解 FoundationDB Resolver 如何用 read/write conflict ranges 做乐观并发控制:冲突窗口落在 read version 与 commit version 之间,客户端自动重试;并与 TiKV Percolator 快照隔离对照机制差异,不写无实测性能结论。
说明 FoundationDB 如何用 Sequencer 版本把 OCC+MVCC 提升到严格可串行化,区分 serialization order 与实时顺序;论证 5 秒事务上限如何约束冲突窗口与恢复日志量,并点明高冲突下的开放问题。
拆解 FoundationDB Transaction Log(TLog)如何作为分布式 WAL:按复制策略同步 durable 后 Commit Proxy 才返回成功;说明 durable version、known committed version 与恢复版本的关系,以及 Storage Server 异步消费如何离开提交临界路径。
说明 FoundationDB Storage Server 如何托管 shard、按版本服务读、从 TLog 异步拉日志并参与迁移;强调读路径直达 Storage、不经过 Commit Proxy 提交流水线,以及与 Data Distributor 的边界。
梳理 FoundationDB 存储引擎谱系:SIGMOD 2021 时代的 SQLite 派生 SSD Engine 如何把 SQL 剥掉只留 B-Tree,再到 7.x 的 Redwood 多版本前缀压缩 B-Tree;划清无本地事务 WAL 的系统边界,并与 RocksDB LSM 对照机制而非性能排名。
按 SIGMOD 2021 钉住 FoundationDB 把失败收敛到同一条恢复路径:Sequencer 锁定 Coordinator、停止旧 LogServer、招募新 Proxy/Resolver/TLog、确定 RV/PEV,并说明写暂停、读边界与旧角色隔离。
在 distributed/54 的方法论之上,钉住 FoundationDB 如何用 Flow、模拟网络/磁盘/时钟、种子重放与 Buggify 覆盖角色恢复路径;不复述 DST 通识,只写工程接口与测试落点。
拆解 Record Layer 如何在 FDB 严格可串行化 KV 上用 Protocol Buffers、Tuple/Subspace 与同事务索引维护实现记录存储;CloudKit 只引用 SIGMOD 2019 等可核实来源。
按 Unbundled 角色给出可观测的资源画像、分片热点成因与备份/DR 边界;只引用官方 Administration / Backup 文档与 SIGMOD 2021 机制,不写无来源容量公式。
用症状到机制的决策树排查四类高频问题:事务超时、冲突风暴、Sequencer 切换写暂停、Storage 落后于 TLog;回链 OCC、恢复与运维篇,不重复调参手册。
用一致性级别、事务模型与 Layer 边界收束 FoundationDB / TiKV / etcd 选型;给出站内阅读地图、全系列学术谱系与开放问题,标志 FoundationDB 内核系列完成。
补齐 FoundationDB 选型叙事与生产内核之间的一层:拆解 Proxy、Sequencer、Resolver、TLog、Storage Server 的 Unbundled 写路径,严格可串行化、Redwood 与确定性模拟,并以 Record Layer 和 TiKV/etcd 对照收束。
汇总本站数据库内核文章:PostgreSQL / MySQL InnoDB / 列存、湖仓、流处理、查询引擎、RocksDB、向量、Redis、全文检索、TiKV/HTAP 与 FoundationDB,以及 LSM-Tree 实验。
给出分布式强一致 KV 的扩展决策树:数据规模、事务需求、新鲜度要求如何在 TiKV、etcd、FoundationDB、单机 RocksDB、湖仓+CDC 之间做选型;回链全系列 18 篇,收束学术谱系与开放问题,标志系列完成。