Curve整体学习路径
在开发者活动选题之前,我们给参加开发者活动的小伙伴们一个分布式系统的学习的 Roadmap,该 Roadmap 是 Curve 团队的新人培养实践沉淀,大家可以根据自身需要自行学习。
☆ 了解分布式存储系统的基本知识目标:知道为什么需要分布式存储?分布式存储的难点在哪里?都有哪些解决方法参考资料:
- Distributed systems: Distributed systems for fun and profit
☆ 熟悉分布式系统设计目标:了解分布式系统一般架构,了解部分解决方案的技术细节参考资料:
- The Google File System http://static.googleusercontent.com/media/research.google.com/es//archive/gfs-sosp2003.pdf
- The Raft Consensus Algorithm: https://raft.github.io/
- MapReduce: Simplified Data Processing on Large Clusters https://pdos.csail.mit.edu/6.824/papers/mapreduce.pdf
- CEPH: RELIABLE, SCALABLE, AND HIGH-PERFORMANCEDISTRIBUTED STORAGE https://ceph.com/wp-content/uploads/2016/08/weil-thesis.pdf
- PacificA: Replication in Log-Based Distributed Storage Systems https://www.microsoft.com/en-us/research/wp-content/uploads/2008/02/tr-2008-25.pdf
- 6.824 Schedule: Spring 2020, MIT的分布式系统课程,感兴趣的可以多看:6.5840 Schedule: Spring 2023
☆ 了解Curve目标:掌握Curve总体设计,各模块的设计参考资料:
- Curve主页: https://opencurve.github.io/
- Curve系列讲座ppt地址https://github.com/opencurve/curve-meetup-slides/tree/main/2020
- Curve各模块介绍文档https://github.com/opencurve/curve/tree/master/docs/cn
- Curve技术文档【技术资源合集】Curve 开源云原生软件定义存储系统 - 知乎
- Curve代码阅读:
☆ 掌握代码开发/测试工具目标:掌握代码开发流程,熟练使用代码开发、调试、测试过程中所需要的工具参考资料:
- Curve代码构建工具bazel: https://bazel.build/
- Curve代码测试框架gtest: https://github.com/google/googletest/blob/master/googletest/docs/primer.md
- Curve代码管理 Git: Git 基本操作 | 菜鸟教程
- 代码调试工具: gdb等
- 谷歌开源项目风格指南:https://zh-google-styleguide.readthedocs.io/en/latest/google-cpp-styleguide/
- 编程规范:《Clean Code》