“开源软件供应链点亮计划 - 暑期 2021”是由中国科学院软件研究所主办的,面向高校学生的系列暑期开源项目开发活动。活动将联合各大开源社区,针对重要开源软件的开发与维护提供项目,面向全国高校学生开放报名。学生可自主选择感兴趣的项目进行申请,并在中选后获得该软件资深维护者(导师)亲自指导的机会。根据项目的完成情况,导师和学生还将有机会获取丰厚活动奖金和奖杯。
所有通过结项考核的同学会收到结项奖金,每个项目难度分为高、中、低三档,对应税前奖金分别为高(12000 元)、中(9000 元)、低(6000 元)。
实践项目一:
1. 项目标题:Oracle数据库到PostgreSQL数据库迁移转换持续集成
2. 项目描述:Oracle数据库里结构对象迁移到PostgreSQL,数据库对象包括表、视图、同义词、物化视图、函数、存储过程、包及包体等
3. 项目难度:中
4. 项目社区导师:彭冲
5. 导师联系方式:pcsuccess@sina.com
6. 其他导师:无
7. 项目产出要求:1.结合现有开源工具如pgloader、ora2pg等进行部分迁移转化工作;2.使用程序实现不兼容性的迁移转化工作
8. 项目技术要求:Java、shell、SQL或js、Web前端等
导师简介:中国首批PostgreSQL ACE伙伴,多年从事基于PostgreSQL数据库的软件研发,擅长于PL/PGSQL业务迁移及优化,Oracle到PostgreSQL的迁移升级,异构数据库整合;为多家公交、ERP、金融行业企业做过PostgreSQL技术培训。
实践项目二:
1. 项目标题:PostgreSQL Block Recover
2. 项目描述:Block Recover是Oracle备份恢复体系中一项强大的功能,它以备份为基础,利用重做日志和归档日志快速恢复损坏的块。PostgreSQL中一直欠缺此项功能,不得以只能以“Full Pages Write”特性代替,但“Full Pages Write”特性对性能产生了巨大的影响。经测试开启“Full Pages Write”特性后,整体性能、TPS下降20%左右。 本项目目标为PostgreSQL增加和Oracle一样的Block Recover功能,使PG可以关闭“Full Pages Write”特性,从而提升性能和TPS。
3. 项目难度:中
4. 项目社区导师:吕海波
5. 导师联系方式:ws-bobo@hotmail.com
6. 其他导师:无
7. 项目产出要求:实现Block Recover工具,在PostgreSQL现在备份基础上,利用xlog、归档日志完成损坏块恢复。
8. 项目技术要求:C语言、PostgreSQL数据库基础知识
导师简介:IT老兵,资深数据库内核专家,25年IT领域从业经历,十数年数据库经验,惯看IT江湖风起云涌。曾在多家巨头型互联网公司从事数据库管理与研究工作。2009年曾就任阿里巴巴P8级数据库专家(当年阿里巴巴P8、含P8以上技术人员不足百人)。并于2014年以特招方式进入国际电商巨头ebay(是ebay全球唯一无法英文听说的技术人员),从事数据库管理与研究工作。曾多次在DTCC数据库大会、系统架构师大会以个人、独立身份发表演讲,演讲内容涉及云数据库、源码研究等方面内容。
实践项目三:
1. 项目标题:数据库深层性能动态监测
2. 项目描述:数据库是底层系统软件之一,因其大并发、海量数据的特性,对性能的要求十分苛刻。CPU本身提供有强大的性能计数功能,可以对指令数量、指令周期、L1 Cache、分支预测、Page Faults等CPU自身和OS内核的行为,做出十分全面的性能监测。本项目使用CPU自身的性能计数功能,利用Linux中ptrace接口,在不修改数据库代码的情况下,对数据库的任意代码段进行动态的、CPU级的深层性能检测,使自研数据库开发者,可以更加清楚数据库代码与CPU的亲和度、以及潜在的性能缓慢问题的方向,为提升国产自研数据库的性能,提供更为具体的目标与方向。
3. 项目难度:中
4. 项目社区导师:吕海波
5. 导师联系方式:ws-bobo@hotmail.com
6. 其他导师:无
7. 项目产出要求:实现动态深层性能监测工具,对某一地址到另一地址间的代码,做CPU级的性能统计,得到IPC(每周期指令数)、L1 Cache命中率、总线访问次数、分枝预测命中率等深层次、CPU级的性能指标。
8. 项目技术要求:C语言、OS、数据库基本操作、gdb调式器
导师简介:IT老兵,资深数据库内核专家,25年IT领域从业经历,十数年数据库经验,惯看IT江湖风起云涌。曾在多家巨头型互联网公司从事数据库管理与研究工作。2009年曾就任阿里巴巴P8级数据库专家(当年阿里巴巴P8、含P8以上技术人员不足百人)。并于2014年以特招方式进入国际电商巨头ebay(是ebay全球唯一无法英文听说的技术人员),从事数据库管理与研究工作。曾多次在DTCC数据库大会、系统架构师大会以个人、独立身份发表演讲,演讲内容涉及云数据库、源码研究等方面内容。
实践项目四:
1. 项目标题:PostgreSQL数据库Wal文件切换
2. 项目描述:PostgreSQL的Wal文件与Oracle的redo/undo文件均可实现数据库的恢复,由于数据库都是先写日志再进行事务提交,当此类重做日志文件所在的文件系统I/O压力大时,会导致数据库的性能下降,此时需要修改文件位置来恢复性能,而PostgreSQL只支持offline时修改路径,Oracle则支持offline/online修改路径,对大型数据库而言,关闭数据库的影响是十分大的。本项目目标为PostgreSQL增加和Oracle一样的支持数据库online时修改重做日志文件路径的功能,从而提高PostgreSQL的灵活性。
3. 项目难度:中
4. 项目社区导师:秦建斌
5. 导师联系方式:qinjianbin@szu.edu.cn
6. 其他导师:无
7. 项目产出要求:实现PostgreSQL支持online修改Wal文件路径的功能
8. 项目技术要求:Linux、C、Shell等
导师简介:深圳大学计算机与软件学院特聘教授,深圳计算科学研究院研究科学家,国家青年特聘专家,归国前在爱丁堡大学数据库做研究员,博士毕业于澳大利亚新南威尔士大学,曾在百度,微软和Google从事研发工作。主要研究方向是数据库理论,数据库系统,相似性查询,信息检索,数据治理等。
实践项目五:
1. 项目标题:Automatic indexing 在PostgreSQL上的实现
2. 项目描述:参考Oracle 和 Azure SQL 上Automatic indexing的实现,在PostgreSQL中分阶段实现类似功能。Automatic indexing能够根据运行时信息,在不明显加重系统负担的情况下,自动创建能加速SQL执行、减轻运行负担的index。index创建完成之后,还会对相关索引进行评估,修正无法改进执行情况的index。在最近几年的Oracle19c 和 Azure SQL中都已实现该功能,对于用户而言,其减轻了操作负担,降低了使用门槛;对于云数据库厂商而言,显著降低了集群的资源使用。
3. 项目难度:高
4. 项目社区导师:秦建斌
5. 导师联系方式:qinjianbin@szu.edu.cn
6. 其他导师:无
7. 项目产出要求:利用开源工具实现对PostgreSQL运行信息的监控及虚拟index的创建;实现能够自动创建并评估改进index的扩展。
8. 项目技术要求:c、PostgreSQL内核、PostgreSQL执行信息的收集和分析
导师简介:深圳大学计算机与软件学院特聘教授,深圳计算科学研究院研究科学家,国家青年特聘专家,归国前在爱丁堡大学数据库做研究员,博士毕业于澳大利亚新南威尔士大学,曾在百度,微软和Google从事研发工作。主要研究方向是数据库理论,数据库系统,相似性查询,信息检索,数据治理等。
实践项目六:
1. 项目标题:PostgreSQL数据库数据剖析的功能丰富与完善
2. 项目描述:PostgreSQL数据库是目前开源数据库中,功能最完善、性能最好的数据库系统之一,在数据剖析领域具有巨大的作用。本项目致力于在PostgreSQL数据库内部实现Tane, Ctane , Fun, DCFinder等一系列数据质量规则挖掘算法,使得PostgreSQL具备一部分数据剖析的功能,如对Candidate Functional Dependency以及Conditional Functional Dependency的挖掘, 将数据库质量提升相关的约束发现和数据剖析功能在数据库系统中实现
3. 项目难度:中
4. 项目社区导师:秦建斌
5. 导师联系方式:qinjianbin@szu.edu.cn
6. 其他导师:无
7. 项目产出要求:结合现有算法Tane, Ctane , Fun,DCFinder等,在数据库内部实现Candidate Functional Dependency以及Conditional Functional Dependency的挖掘的功能,将数据库质量提升相关的约束发现和数据剖析功能在数据库系统中实现
8. 项目技术要求:C, PostgreSQL
导师简介:深圳大学计算机与软件学院特聘教授,深圳计算科学研究院研究科学家,国家青年特聘专家,归国前在爱丁堡大学数据库做研究员,博士毕业于澳大利亚新南威尔士大学,曾在百度,微软和Google从事研发工作。主要研究方向是数据库理论,数据库系统,相似性查询,信息检索,数据治理等。