一、摘要
在技术革新的浪潮中,数据库技术是现代信息技术的基石,openGemini社区携手开发者,启动人才培养计划,旨在培养新一代云原生数据库技术人才,共同推动云原生数据库技术创新。
二、社区介绍
openGemini是一款开源的云原生分布式时序数据库,专注于海量可观测性数据的存储和分析,2022年10月开源,2024年7月正式成为CNCF沙箱项目。
openGemini社区致力于为开发者提供强大的工具和资源,帮助他们构建高性能、低成本、稳定可靠的时序数据库解决方案,社区有项目24个,包括数据库内核、客户端、数据迁移、安装部署、数据可视化、数据库运维、官网、文档等,涉及Go、Java、C++、Rust、Python、JavaScript等多种开发语言,涵盖前端(Vue)、数据库、云原生、大数据、工具等不同技术领域,我们的目标是构建一个全面而多元化的技术生态,让开发者能够在不同层面上展现自己的专长,并从社区中获得支持和成长。
三、社区优势
openGemini开源社区的人才培养计划得益于社区的深厚底蕴和独特优势,为参与者提供了一个卓越的学习和成长平台:
强大的技术支持: openGemini社区背后的主要维护团队是华为云数据库创新Lab,这是一支拥有深厚研发能力的团队。团队成员不仅具备丰富的数据库开发经验,而且在数据库技术领域拥有100篇专利,在顶级数据库领域期刊和会议上发表论文24篇。团队的博士占比30%,其余100%重点高校硕士研究生,并在分布式处理、索引技术、数据压缩、内存控制、查询优化和数据存储等领域均有深入研究和应用,确保了社区在技术创新和知识深度上的领先地位。
前沿的技术实践: openGemini在性能和数据压缩方面具有出色的表现,不仅极大提升了数据处理的效率,也帮助企业显著降低了运维成本。在华为,10余个部门和产品已经采用openGemini技术,部署集群300+套,每天处理的数据量达到数百TB,相当一部分应用场景放在业界也是非常典型的,这足以证明其在实际应用中的可靠性和高效性。
尽管openGemini社区尚属年轻,但其活力和潜力已经得到了广泛认可,目前社区已经吸引了60余家企业用户,150+社区贡献者。这一成就的取得,是社区对技术创新不懈追求的结果。加入我们的人才培养计划,你将有机会直接参与到这些前沿技术的研发之中,通过实践快速提升技术水平,与社区共同成长。
开放的参与环境: 社区以开放的姿态,提供清晰的贡献指南和开放的沟通渠道,鼓励并欢迎不同背景、不同专业的开发者参与到项目中来。
丰富的成员多样性: openGemini社区汇聚了来自全球各地、不同技术领域的开发者。这种多样性为社区带来了丰富的视角和创新思维,促进了知识的交流和经验的分享,为参与者提供了一个多元化的学习环境。
通过这些优势,openGemini社区的人才培养计划不仅为参与者提供了技术学习和实践的机会,更搭建了一个全球化的技术交流和个人成长的平台。加入我们,与顶尖的数据库专家并肩工作,共同推动数据库技术的创新和发展。
四、人才培养计划的目标
1、培养对数据库技术有深刻理解的专业人才
• 技术能力提升: 提高参与者的数据库专业知识和编程技能,确保他们能够熟练掌握并应用openGemini及相关技术
• 实战经验积累: 通过参与真实项目,使开发者获得宝贵的数据库开发实战经验,增强解决实际问题的能力
• 创新思维培养: 激发参与者的创新精神,鼓励他们在面对技术挑战时能够提出新颖的解决方案
2、 为社区成员提供成长和发展的机会
• 领导力培养: 通过项目管理、团队协作等活动,培养参与者的领导力和团队管理能力
• 社区角色: 鼓励参与者承担社区中的关键角色,如Committer、Maintainer、技术导师或社区大使,提升其在社区中的影响力
• 持续学习环境: 营造一个持续学习和分享的环境,鼓励成员不断更新知识,适应技术发展的步伐
• 个人品牌建设: 支持社区成员通过技术分享、演讲和撰写文章等方式建立个人品牌,提升其在技术领域内的知名度
五、计划内容
• 项目培训:提供在线项目培训,涵盖项目编译部署、基本操作使用、社区开发流程、代码测试和调试、数据库核心流程代码解读等,帮助参与者尽快熟悉项目
• 项目实践:参与者将深入社区不同关键技术领域的日常研发活动中,包括读写性能优化、存储引擎、私有数据传输协议、Prometheus算子兼容、日志存储和检索、日志压缩、opentelemetry标准协议支持、数据导入导出、数据备份等。初期主要负责功能设计、编码实现、单元测试、系统测试等简单工作,熟悉代码后,将负责一些新需求或者新特性的研发工作
• 导师制度:经验丰富的社区成员作为导师,提供一对一技术方案指导,手把手带你入门
• 技术研讨会:定期举办技术研讨会,邀请社区成员分享最新技术动态和研究成果。定期举办技术培训,分享编程技术和心得
• 荣誉激励:有机会成为社区开源之星;有机会成为CNCF项目Committer或Maintainer,参与到社区的日常管理;华为云数据库创新Lab的社招或者校园招聘优先考虑
六、参与方式
若您希望加入openGemini社区人才培养计划,请按照以下步骤提交您的申请:
- 下载申请表:从社区下载申请表openGemini-Application.docx
- 填写申请表: 认真填写申请表各项内容,确保所有信息准确无误
- 提交申请: 完成填写后,请将申请表发送至我们的官方社区邮箱:openGemini.ts@openGemini.org
- 申请处理周期: 社区人才培养计划是一项长期开展的活动,我们会在每月的最后一周对收到的申请进行集中审核
- 结果公布: 审核结果将在下个月初的第一周的周一晚上,通过我们的官方网站进行公布。同时,我们还将通过电子邮件直接通知每位申请者审核结果,确保您能够及时获取相关信息。
我们期待着您的加入,与openGemini社区一同成长。
社区咨询联系方式
邮箱:openGemini.ts@openGemini.org
微信:搜索添加社区小助手 fanxiaowen399
七、参与要求
- 热爱编程,对数据库技术感兴趣
- 熟悉Go/Java/Rust/Python等其中一门语言、数据结构和Linux操作系统
- 自我驱动,学习能力强,具备良好的英文读写能力
- 性格积极乐观,有较强的语言表达能力和沟通能力,具备强烈的责任心、求知欲以及团队合作精神
- 写一篇openGemini的源码分析的博客文章并发表,分析的功能不限,发表平台不限(如CSDN、知乎),文章内容包括功能说明、实现逻辑、关键代码解析。附录列举了一些功能和代码入口,供参考。
八、结语
openGemini社区人才培养计划不仅为个人提供了成长的机会,也为整个社区的发展注入了活力。我们期待有更多对数据库技术充满热情的人才加入我们,共同推动数据库技术的发展。
九、附录
数据订阅功能分析
数据订阅功能介绍:https://docs.opengemini.org/zh/guide/features/subscription.html
启动数据订阅功能:app/ts-sql/server.go, func NewServer() : 145-147行
创建数据订阅任务:lib/util/lifted/influx/coordinator/statement_executor.go , func executeCreateSubscriptionStatement() : 831-836行
数据订阅功能实现:coordinator/subscriber.go
ts-sql的启动流程分析
ts-sql入口: app/ts-sql/main.go
ts-store的启动流程分析
ts-sql入口: app/ts-store/main.go
ts-sql写数据流程分析
ts-sql入口:lib/util/lifted/influx/httpd/handler.go func serveWrite()
ts-store数据刷盘逻辑分析
入口:engine/shard.go func Snapshot()
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。