开源之夏(全称:开源软件供应链点亮计划——暑期 2022)是由中国科学院软件研究所与 OpenEuler 社区共同主办的一项面向高校学生的暑期在线活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进优秀开源软件社区的蓬勃发展。
TDengine 社区已加入开源软件供应链点亮计划。学生可以自由选择项目,与社区导师沟通实现方案并撰写项目计划书。被选中的学生将在 TDengine 社区导师(资深、高水平的程序员前辈)亲自指导的机会,完成开发工作,并将成果贡献给社区。根据项目的难易程度和完成情况,参与并按要求完成项目的同学,除了能获得主办方提供的奖金和证书奖励外,还能领取 TDengine 官方定制纪念品一份。表现优秀的同学,可以成为社区 Contributor,还可以被推荐至 TDengine 研发团队实习或成为全职员工。
学生指南:https://summer-ospp.ac.cn/help/student/
TDengine 社区提供 4 个任务,列表如下:
项目 1 – TDengine 客户端代码深度优化
项目描述:TDengine Database 整体服务由 Server 和 Client 端组成。Client 端承担了读写请求的解析、拼装、序列化、分布式访问、Meta 缓存等重要职责。在高并发高吞吐的访问过程中,这些功能的实现方式,将会决定 TDengine 的性能效果。因此本次项目将会通过探学习 TDengine Client 的代码结构,通过 BPF 等工具,引入 Tracing,对每个核心技术点进行 Performance Analysis/Research/Coding/Testing,落地高性能的实现方式,从而提升 Client 的整体性能。你将会有机会优化整个时序物联网行业的能效。
项目难度:Advanced
项目主导师:陈伟灿
项目产出要求:
- client 代码分析报告,包含代码架构图,功能清单,调用链关系
- 目标优化功能的性能分析报告
- 主流技术点的调研、分析与对比报告
- 编码设计与编码实现
- 测试方案、测试用例、对比测试报告
- 项目总结报告
项目技术要求:
- 熟悉各类排序算法、字符串匹配、正则表达式
- 熟悉队列、哈希、堆、栈等数据结构
- 熟悉 Protobuf 等各类序列化技术
- 熟悉 Linux 内存分配原理及机制
- 熟悉同步/异步、阻塞/非阻塞等网络概念,熟悉 socket 编程
- 掌握至少1种 C 的 unit test 方法
项目 2 – TDengine 流计算特性测试工具开发
项目描述:随着数据时效性对企业的精细化运营越来越重要,“实时即未来”、“实时数仓”成为了近几年炙手可热的词。流计算领域也在这几年发生了巨大的变化, 但在这个领域中,还没有一个行业标准的基准测试, 本项目要求开发一个测试工具,能够对 TDengine 流计算特性的所有功能,在各种使用场景中进行测试,保证 TDengine 流计算特性的正确性和健壮性, 测试范围包括并不限于功能、性能、稳定性测试, 同时要保证能够采集到相应的吞吐量、延迟、CPU 和内存等信息。
项目难度:Advanced
项目主导师:贾靖斌
项目产出要求:
- 测试工具的设计文档、代码和使用手册;
- 基础场景的测试用例;
- 交付物全部提交到 TDengine 的 GitHub 仓库。
项目技术要求:
- 测试工具能够模拟生产者,产生数据流,写入 TDengine;
- 测试工具能够模拟消费者,从 TDengine 进行消费;
- 测试工具支持通过命令行参数,或配置脚本,获取生产者的行为;
- 测试工具支持通过命令行参数,或配置脚本,获取消费者的行为;
- 支持测试脚本控制该测试工具,对 TDengine 流计算特性的所有功能进行测试;
项目 3 – TDengine Visual Studio Code 插件开发
项目描述:完成 TDengine 的 Visual Studio Code 插件开发,使用此插件中可以进行 TDengine Database 连接、查询、插入等常规操作。
项目难度:Advanced
项目主导师:霍立波
合作导师:桑树多
项目产出要求:
- 可以正常使用的 Visual Studio Code 插件,通过此插件实现 TDengine 数据管理,并将源码提交至 TDengine 的 GitHub 仓库。
- 完整的软件设计文档及功能列表。
- 完整的部署文档及使用说明。
项目技术要求:
- 编程可以选择:TypeScript/JavaScript 进行开发。
- 基本功能要求:
- 通过界面配置数据库连接参数。
- 导航栏可以查看数据库、数据表列表。
- 双击数据表可以在主界面显示数据表内容,并可以对列进行排序。
- 主界面可以执行 SQL 语句并显示结果。
- 可选功能要求:
- 实现导入/导出,支持 SQL、CSV 等多种格式。
- 主界面可以添加数据。
项目 4 – 时序数据集建模
项目描述:选择一个具有代表性的开放时序数据集(如天气、股票、天文、地震),编写从数据源定期同步数据的脚本,进行数据建模,编写典型的查询语句、通过可视化软件(如 Grafana)进行展示。
项目难度:Basic
项目主导师:Pan Yang
项目产出要求:
- 项目设计文档,包括产品设计和技术方案设计
- 开放数据集同步脚本
- 建模文档、创建数据库表的 SQL 文件
- 典型的查询 SQL 文件
- 对接数据可视化软件,可以进行数据的可视化展示
项目技术要求:
- TDengine 数据库建模和查询的基础知识
- 建议选择 Go、Python 语言
- 选择一个流行的开源可视化软件,如 Grafana
注册报名
报名链接:https://summer-ospp.ac.cn/#/org/orgdetail/42920502-6476-4380-9ed0-ff7b90ad9f03/
报名咨询: