openGauss

开源数据库

openGauss社区官网

开源社区

赛题解读|openGauss x CCF开源创新大赛:10w激励金,开启数据库核心能力挑战!

openGauss2026-06-05theme

导语

企业数据库运维常遇SQL查询耗时失控、归一化SQL执行计划解析不准、线上事务故障溯源难等核心难题,均为数据库内核研发与运维的实战痛点。

第八届CCF开源创新大赛openGauss赛题,紧扣企业级数据库真实场景设置内核研发挑战,参赛者可完整参与内核开发全流程,适配数据库、系统软件方向学习者与开发者,是深耕核心技术、共建开源生态的优质实践平台。

一、赛题核心信息速览

alt text

二、赛题激励

alt text

alt text

扫码加入赛题交流群

三、赛题设计背景与核心痛点

解读企业级开源数据库的核心竞争力,不在于基础的数据存储能力,而在于执行稳定性、计划透明性、事务可追溯性、高并发可靠性四大核心能力。openGauss作为高性能、高可靠的企业级关系型开源数据库,持续深耕内核能力迭代。本次三道赛题,均源自真实生产环境的高频痛点,针对性解决数据库运维、调优、故障排查难题。

3.1 痛点一:失控慢SQL引发数据库整体性能雪崩

开源项目维护者每天面对大量重复性工作:Issue 需要分类打标签、PR 需要 Review 和测试、Release Notes 需要手动整理、新贡献者需要引导……这些工作占据了维护者大量时间,却很少有工具能系统性地解决。

3.2 痛点二:参数化归一化SQL执行计划无法解析

为提升执行计划缓存命中率,现代数据库普遍采用归一化参数化SQL写法(如 SELECT * FROM user WHERE id = ?)。该模式虽能优化缓存效率,但存在明显缺陷:开发者无法直接查看通用执行计划(generic plan),难以完成SQL调优、故障诊断与执行计划分析工作,极大增加了数据库运维难度。本方向赛题旨在补齐openGauss参数化SQL的Explain解析能力,支撑常态化数据库优化工作。

3.3 痛点三:线上事务故障难以追溯定位

事务系统是数据库的核心基石,线上多数数据库故障均与长事务、事务异常提交相关。传统数据库仅能记录事务ID(XID),无法反向追溯事务准确提交时间,导致故障排查无依据、长事务问题难以定位、业务异常无法溯源。本方向赛题聚焦数据库可观测性建设,构建事务ID与提交时间的映射机制,完善事务全链路追溯能力。

四、赛题详细任务要求

4.1 子赛题一:SQL执行时间限制能力增强

本次赛事设置三道独立子赛题,参赛团队可任选其一完成参赛,无需全部作答。各赛题均设置基础必做目标与进阶拔高挑战,适配不同技术基础的参赛者。

核心目标:

搭建多维度SQL执行超时管控体系,自动终止超时查询,杜绝慢SQL拖垮数据库的问题,保障系统运行稳定。

基础实现目标(必完成):

搭建三级超时管控机制,分别实现数据库全局级别、用户会话(Session)级别、SQL语句Hint级别的执行时间阈值设置与自动中止能力。

进阶优化目标(高分冲刺):

优化超时检测算法,降低检测机制带来的性能损耗;精准识别异常SQL,避免误杀正常业务语句;优化高并发场景下的超时调度逻辑,提升系统稳定性。

核心技术关键词:

SQL执行器、线程中断机制、GUC参数配置、SQL查询生命周期管理

4.2 子赛题二:归一化SQL Explain能力增强

核心目标:

补齐参数化SQL的执行计划解析能力,支持归一化SQL正常输出通用执行计划,支撑SQL调优与故障诊断。

基础实现目标(必完成):

兼容 ?、$n 两类参数化符号,实现归一化SQL的generic plan完整解析与打印,支持常规参数化语句的Explain分析。

进阶优化目标(高分冲刺):

优化执行计划展示格式,提升可读性;精简Explain执行逻辑,降低性能开销;拓展适配场景,兼容更多类型的归一化SQL语句。

核心技术关键词:

语法解析器、优化器、执行计划、Explain框架

4.3 子赛题三:事务ID反查提交时间能力实现

核心目标:

构建事务ID与提交时间的映射体系,实现事务提交时间可追溯、可查询,完善数据库可观测性能力。

基础实现目标(必完成):

搭建XID与事务提交时间的映射关系;配置GUC开关实现功能启停;设计稳定的映射数据记录与存储机制。

进阶优化目标(高分冲刺):

优化数据存储逻辑,降低额外IO开销;优化查询算法,提升事务时间反查效率;设计高可靠存储方案,保障映射数据持久化、不丢失;高效的数据回收管理机制。

核心技术关键词:

事务管理器、WAL日志、提交日志、存储引擎

4.4 赛事阶段规划与提交物要求

赛事分为报名、初赛、复赛、决赛四个阶段,各阶段任务明确、考核重点清晰,具体要求如下:

alt text

五、官方解题思路与入门指引

5.1 基础入门:搭建本地开发环境

CCF所有参赛者需优先完成环境搭建,熟悉openGauss基础操作:编译源码、启动数据库、SQL基础调试、核心模块源码阅读。重点熟悉四大核心模块:SQL执行流程、GUC参数配置系统、执行器(Executor)、事务管理模块。

基础环境验证指令:

Plain Text
gs_ctl start
gsql -d postgres

成功启动数据库并执行基础SQL语句,即完成前期环境准备工作。

5.2 分赛题核心源码模块聚焦

针对不同子赛题,精准定位核心研发模块,降低学习成本:

子赛题一(SQL执行控制):

核心聚焦执行器、SQL查询生命周期、线程中断检测机制。核心难点为安全终止异常SQL、隔离线程资源,避免影响数据库整体运行。

子赛题二(Explain能力增强):

核心聚焦语法解析器、优化器、Explain框架与执行计划生成模块。核心难点为参数化SQL语义解析、通用执行计划精准获取。

子赛题三(事务追溯):

核心聚焦事务管理器、提交日志、WAL日志、存储引擎。核心难点为提交时间持久化存储、性能与数据可靠性平衡。

5.3 核心重点:全方位测试验证

CCF数据库内核开发中,测试能力是核心考核指标。所有参赛作品需覆盖常规场景、异常场景、边界场景、高并发场景、大数据量场景五大测试维度,确保功能稳定可用。

各赛题核心测试重点:

  • SQL执行控制:验证超时中止有效性、资源释放完整性、跨会话无干扰性、性能影响;

  • Explain能力增强:验证参数化SQL解析准确性、执行计划稳定性;

  • 事务时间追溯:验证XID映射准确性、重启后数据恢复可靠性、查询性能、对事务提交的性能影响。

六、官方评审标准与高分技巧

alt text

七、官方学习资源与技术支持

openGauss社区提供全方位官方学习资源,助力参赛者高效备赛,全程提供技术支撑。

八、常见参赛问题FAQ

alt text

九、结语

本次openGauss赛题以产业真实难题为赛题,为开发者提供数据库内核实战与开源贡献平台。无论有无基础,均可通过赛事深耕底层技术、积累工业级项目经验,个人成果可赋能国产开源数据库生态。