“这是我第一次真实接触到复杂的系统,我感受到了数据库的魅力。”日前,第二届OceanBase数据库大赛(国内首个分布式数据库内核开发大赛)决赛在北京落下帷幕。浙江大学“K-ON!队”荣摘桂冠,对于队长林浩然而言,这次机会让他对数据库的了解更深入了。
(相关资料图)
第二届OceanBase数据库大赛(以下简称“数据库大赛”)启动后吸引了清华大学、北京大学、复旦大学、浙江大学、西北工业大学、华东师范大学、电子科技大学等高校的近2000名选手参赛,还有一些来自企业的数据库爱好者也参与其中。
最终,浙江大学“K-ON!队”拿下冠军,西北工业大学的“426白给突击队”与电子科技大学的“0xc0队”获得亚军,北京大学的“824445721队”、浙江大学和北京理工大学跨校组队的“Don’t panic队”,以及华东师范大学的“DaSE997队”获得季军。
跨越书本,上场练兵
在数据库大赛举办的6个月里,王炳杰打开了新世界的大门,但开门的过程并不容易。
王炳杰是西北工业大学大数据存储与管理工业和信息化部重点实验室成员,他和队友杨俊琨、张成林算是参赛选手中和数据库打交道比较多的。在他们看来,数据库记录着社会生活中方方面面的信息,“金融、军工、日常生活……从微观到宏观的各种信息,记录本身就是数据库最大的意义。”而王炳杰他们要做的,就是在参赛过程中更好地优化和管理数据库。
三人是瞒着实验室的指导老师“偷偷报名”参赛的,因为三人只想把这次比赛当作一个练兵场,王炳杰说,“就想看看自己的水平,压根儿没想过拿名次的事。”
或许是实力不允许他们低调,初赛赛程过半的时候,“426白给突击队”就拿到了340分,是所有参赛队伍里第二个拿到满分的。
西北工业大学计算机学院副教授刘文洁是“426白给突击队”的指导老师,她在比赛中途才得知自己的几个学生报名参赛了,心里很高兴。她说,“自己心里是鼓励学生参赛的,也想通过比赛看看自己学生的水平。”
然而,复赛难度的升级,以及复赛团队更为强劲的实力,给刚刚迎来“开门红”的团队来了一个下马威。由于复赛初期团队初始框架有问题需要重写,三人一边看着实时更新的排行榜上其他队伍的成绩不断提高,一边咬牙坚持修改。看着团队迟迟没有成绩动态,刚刚得知他们参赛的导师也来询问,“你们还参赛吗?”
在历时6个月的大赛中,类似的难题几乎每个队伍都曾遇到过。
冠军“K-ON!队”在比赛进程到一定阶段后,难以找到新的优化点。“可能一些比较容易想到的优化我们队做了,其他队也做了,到分数比较高的时候就很难找到可以继续优化的点,这个过程是比较煎熬的。”林浩然说。
对于12强“trivial队”而言,难题在于“误删功能导致成绩作废。”决赛开始后,团队的成绩一度排在排行榜的第一名,但由于错删了系统中的检查功能,团队成绩将视作无效,分数归零。
得知这个消息的时候距离决赛结束还有3天,但是想重新添加已经被删除的功能并不容易。“trivial队”队员,本科学习计算机专业,现在就读于复旦大学哲学学院的陈淇奥表示,“很多理论知识学习过,但实际操作过程中就不知道怎么办了。”
针对类似的情况,OceanBase 首席技术官杨传辉表示,“当前高校的数据库教育注重理论,但是很多学生学完数据库理论后,依旧没有办法理解数据库到底是什么,更没办法知道实际的数据库是怎么做出来的。”举办数据库大赛正是为了发现、培养更多未来管理和优化数据库的青年人才。
寻找理论通往实践的出口
面对选手在参赛过程中遇到的难题,刘文洁表示,数据库理论知识和实战能力二者缺一不可。“如果要做数据库底层代码,基础知识,包括计算机专业的理论课程都要掌握得非常好;强调实战能力是因为我们发现一些学生的理论分数很高,但让他去写一段代码,半天写不出来。”
电子科技大学计算机科学与工程学院研究员、博导段翰聪的学生也参与了此次数据库大赛,他的感受和刘文洁类似,“关于数据库领域,以及其他国家所急需的软件技术,国家整体有规划,战略上有相应的投入,但实际上我们基层教学一线还应该进一步加大投入。”
教师们的关注点,也是不少学生的痛点,参加数据库大赛正是这群青年寻找理论通往实践出口的一次尝试。
参加数据库大赛前,“K-ON!队”刚刚结束一场比赛十分疲惫,但OceanBase数据库大赛选用企业开源代码的赛题形式依旧让他们忍不住报名参赛。“赛题选用了企业的真实开源码,是工业界实际使用的代码,和平日科研学习中用到的小型代码不一样,是一个比较复杂的工程。”林浩然说。
林浩然觉得数据库大赛更像是一个综合实践的过程,他把参赛当作检验自己理论学习的一种方式。同队的林雨欣在参赛后,对如何综合运用数据库知识有了更好的体会,也对编程的优化和实现有了更多的理解。
在王炳杰看来,复赛过程中大量的实践任务让他和队友体验了一次“实战”。比赛过程中,针对某个模块设计,杨俊琨觉得王炳杰的想法过于抽象,为了确认哪种运行方式更为可行,王炳杰和杨俊琨分别按照自己的思路完成赛题,“最终谁的实践结果好就按照谁的方案来。”杨俊琨说。
来自电子科技大学计算机学院“0xc0队”的凌健、高弘毅和张钦栋,最初“抱着玩一玩”的心态参赛,顺带着检验自己的实践能力。初赛的时候3人忙着“闭门造车”,忽略了平台搭建的沟通群。队员高弘毅说,“相比自己琢磨,官方的沟通群里有专业的数据库工程师答疑,复赛后和他们交流变多更能打开操作思路。”
3人在实验室接触过不少工程项目,也曾学过不少理论知识,但独立实现一个数据库,在企业级的数据库上完善功能还是头一次。
为大学生搭建一个从理论迈向实践的平台是OceanBase数据库大赛创办的初心,杨传辉希望更多同学通过参赛接触到实际生产系统中的内核撰写,并且通过这个平台开展讨论、交流,从而更好地理解数据库工业系统。
华东师范大学“DaSE997队”是6强选手中唯一来自数据科学与工程学院的选手,他们形容自己的参赛经历“像坐过山车”,队长陈睿皓最大的参赛感受是“理论只有结合实践才能发挥最大的作用”。
这次参赛经历给科班出身的他们带来了不小的收获,“原来只知道写SQL语句,到现在明白SQL语句执行的完整过程,能独立实现数据库增删查改的功能。”从理论学习到实践操作,队员陈煜开始更加注重代码的简洁性和可复用性。她还开始纠正自己的编码习惯,因为在和队友合作开发的过程中,她发现“原来代码可以如此优美”。
搭建成长赛道,产学研齐发力
今年两会期间有全国人大代表指出,当下推进产学研深度融合十分必要,“开展产学研结合,促进高校人才和企业双向交流,开展合作,开发新技术、高新技术成为一条可行之路”。
如今,越来越多的企业联合高校搭建实训平台。OceanBase希望通过与高校协同,探索产学研协同育人的新模式,让学生在实践中学习,在学习中创新。刘文洁认为,需要进一步促进企业和高校的产学研融合,加速数据库人才的培养。“实战人才的培养需要让同学们接触真实的开源码,有机会了解内核的实现机制,才能更好地加入数据库的研发团队中。”
在OceanBase创始人兼首席科学家阳振坤看来,人才成长需要周期,人才培养需要持续。回忆十几年前自己组建数据库项目组时的情景,他感慨如今的变化。
阳振坤坦言,“数据库一枝独秀不是春,百花齐放才是春。”百花齐放需要更多产业、更多人才参与建设,对青年数据库人才的培养、关注和发现,在数据库领域的快速发展中起到了关键作用。
中国人民大学明理书院院长杜小勇则希望同学们通过比赛能够认知数据库、喜欢数据库,在未来求职时选择将数据库作为自己的就业方向,为发展国产数据库贡献力量。
像杜小勇院长期待的那样,完成整个赛程后,来自北京大学“824445721”队的黄朴凡、冯惠和范乾一都更加明确了将数据库作为自己未来发展方向的决定。
研一下学期,黄朴凡就在学校组织了一个“民间数据库兴趣小组”,组里都是对数据库兴趣浓厚的同学,平时经常一起分享学习资料、交流研讨。那个时候,他们便盘算着以后要进入数据库行业工作。在了解到数据库大赛后,黄朴凡第一时间拉着组员冯惠组队参赛。这次参赛也更加坚定了他们的决心。
作为为数不多的本科生参赛选手,来自北京理工大学睿信书院的何宏栋通过参赛学到了不少新知识。他和队友贾博凯商量着,如果明年有比赛就继续报名参加。在何宏栋眼里,“数据库大赛给了我一次接触真实世界的数据库存储引擎的机会”。
(刘俞希、王军利、罗希、庾可寒对本文亦有贡献)
(见习记者 程思)