Google Summer of Code (GSoC,Google 编程之夏) 是由 Google 赞助的全球性开源软件开发计划,旨在鼓励开源新手及爱好者参与开源软件项目开发,在社区导师的指导下,按计划完成开发工作,并将成果贡献给社区。主办方 Google 联合各大开源社区,向全球 18 岁以上的开源爱好者开放报名。通过参与 GSoC,不仅可以为自己喜欢的开源项目做贡献,还可以得到技术上的提升和获得丰厚的奖金!Curve 是 CNCF sandbox 项目,致力国产开源分布式存储系统。Curve 将与其他入选开源组织一起,和全球数千位开源爱好者们共同完成 Google 编程之夏 2023。
Support metadata of Curve Block Storage stored in the database
| 技术要求 | C++, SQL |
项目难度
| Medium |
| 联系导师 | Name: Xiaocui Li GitHub: ilixiaocui Email: ilixiaocui@163.com |
Currently the metadata of current CurveBS is stored in Etcd. However, Etcd has limited scalability, and the amount of metadata that can be stored is limited. In order to support larger clusters, it is hoped that the metadata can add a sql database like mysql, MariaDB, PostgreSQL, etc. as one of the storage engines. Add a new sqlstorageclient for metadata.【当前 CurveBS 的元数据存储在 Etcd 中。然而 Etcd 的可扩展性有限,可以存储的元数据量也受到限制。为了支持更大的集群,希望元数据可以添加一个 sql 数据库,如 mysql、MariaDB、PostgreSQL 等作为其中的一个存储引擎。添加一个新的 sqlstorageclient 用于元数据。】预期产出
It is hoped that the user can choose whether the metadata is stored in the kv engine or the sql engine through the configuration file.【希望用户可以通过配置文件选择元数据是存储在 kv 引擎或 sql 数据库中。】
题目地址
https://github.com/opencurve/curve/issues/2224
<扫描进专属题群,近距离与 Mentor 沟通>
Add compression feature for Curve snapshot
| 技术要求 | C++ |
项目难度
| Medium |
| 联系导师 | Name: Chaojie Xu GitHub: xu-chaojie Email: xuchaojie@outlook.com |
Curve snapshots are currently uploaded to s3, and no compression is used. Using compression can greatly reduce the space occupied by snapshots, thereby saving storage costs.【Curve 快照目前被上传到 S3 且没有使用压缩。使用压缩可以大大减少快照占用的空间,从而节省存储成本。】预期要求
Detailed Design Documentation.
Realize curve snapshot compression upload and download decompression.
Add unit tests and integration test cases.
Merge your PR into the opencurve repo.
【 - 详细设计文档;
- 实现Curve快照压缩上传和下载解压缩;
- 添加单元测试和集成测试用例;
- 将PR合并到opencurve存储库】
题目地址
https://github.com/opencurve/curve/issues/2223
Add Tracing feature for Curve
| 技术要求 | C++, OpenTracing |
项目难度
| Hard |
| 联系导师 | Name: Hanqing Wu Github: wu-hanqing Email: wuhanqing@corp.netease.com |
At present, Curve has logging and metrics, both of which can be used to analyze performance as well as locate problems. While they improve the observability of the system, the granularity is coarse and does not allow for precise analysis of how long requests take at each stage. Tracing is a powerful tool that can concatenate invocation relationships between services and log invocation time in the request dimension, preserving essential information and concatenating dispersed log events to help us better understand system behavior, assist in debugging and troubleshooting performance issues.【目前 Curve 拥有日志和指标两种工具用于分析性能以及定位问题。虽然它们提高了系统的可观测性,但粒度较粗,不允许精确分析每个阶段请求所需的时间。追踪是强大的工具,可以将服务之间的调用关系连接起来,并在请求维度上记录调用时间,保留重要信息并连接分散的日志事件,以帮助我们更好地了解系统行为,协助调试和排查性能问题。】预期要求
Design the solution and implement it, introduce it into CurveBS, and analyze the latency of IO requests. The implementation needs to be well scalable and can be applied to other modules.【设计并实现解决方案,将其用于 CurveBS 并分析 IO 请求的延迟。需要实现具有良好的可扩展性,并可应用于其他模块。】
题目地址
https://github.com/opencurve/curve/issues/2229
<扫描进专属题群,近距离与 Mentor 沟通>
以上就是 Curve 在 Google 编程之夏 2023 的题目详情,申情时间为 3 月 20 号 ~ 4 月 4 号,其他关键时间节点如下如所示:https://summerofcode.withgoogle.com
小伙伴们赶快申请!有 Curve Maintainer 亲自指导,获得存储领域开源社区的实践经历。完成项目并合入社区后,还将获得 Google 的 1,800 ~ 3,600 美元奖金和证书。欢迎进专属题群,与 Mentor 近距离讨论细节。如有需要,可以由申报的同学发起线上沟通。
Curve 是一款高性能、易运维、云原生的开源分布式存储系统。可应用于主流的云原生基础设施平台:对接 OpenStack 平台为云主机提供高性能块存储服务;对接 Kubernetes 为其提供 RWO、RWX 等类型的持久化存储卷;对接 PolarFS 作为云原生数据库的高性能存储底座,完美支持云原生数据库的存算分离架构。Curve 亦可作为云存储中间件使用 S3 兼容的对象存储作为数据存储引擎,为公有云用户提供高性价比的共享文件存储。
- GitHub:https://github.com/opencurve/curve
- 用户论坛:https://ask.opencurve.io/微信群:搜索群助手微信号 OpenCurve_bot