Phil Eaton - distsys

2 篇内容

技术文章Phil Eaton - distsys

Checking linearizability in Go

文章讲解如何使用 Go 语言库 Porcupine 检查分布式系统的线性一致性(linearizability),以替代需要 JVM 的 Jepsen。作者先强调 Porcupine 只能帮助建立一致性信心,无法证明系统严格线性一致。随后以分布式寄存器为例,定义操作输入、整数状态和理想化 Step 模型,展示一个包含过期读的非法操作历史被 Porcupine 检测并生成可视化,再给出修复后的合法历史。接着扩展到分布式键值存储,用 map[string]int 建模并按 key 处理状态,进一步演示相同方法。最后指出示例未接入真实系统,并提示可通过状态分区提升性能、集成真实系统。

推荐收录,因为文章提供了完整可运行的 Porcupine 线性一致性检查教程,从模型定义到非法/合法历史验证,并明确工具的能力边界。对需要测试分布式一致性的 Go 工程师非常实用,可迁移到注册表、键值存储等场景,且绕开了 JVM/Jepsen 的学习成本。

学习路线Phil Eaton - distsys

What even is distributed systems

文章是 Phil Eaton 对分布式系统入门学习路径的简短总结。作者首先定义分布式系统为进程间交互的研究,强调其相对单进程系统在正确性、可靠性和性能上的新挑战。随后给出具体学习路线:精读《Designing Data Intensive Applications》并建议找同事或社群伙伴共读,同时跟进 MIT 6.824 分布式系统课程及其论文;实践方面推荐 Fly.io 分布式系统挑战,并列出从两阶段提交、三阶段提交到 Paxos、Raft、EPaxos 等由浅入深的实现项目。作者还分享了自己多次阅读 DDIA 的经验,指出无需等待多年经验即可开始学习,并强调掌握这些经典模块有助于避免开发中重复造轮子或实现有缺陷的自造方案。文章定位为入门指引,不涉及具体算法或协议细节,主要面向想系统学习分布式系统的初学者。

推荐收录,因为它为分布式系统初学者提供了具体、可执行的学习路线:经典书籍、公开课程和递进式实践项目组合清晰,并结合作者个人阅读经验与社群共读建议。适合希望建立分布式系统基础知识框架的开发者,可迁移价值在于帮助读者规避盲目学习或过早陷入复杂论文,直接获得经过验证的资源与项目顺序。