ob比赛经历和感想

刚好参加了第一届OceanBase数据库大赛,分享一下我的比赛经历和感受,希望对你有所帮助。

这个比赛分为三个阶段,初赛,复赛和决赛。

初赛阶段

在初赛阶段,官方提供给我们一个简易的miniob数据库,让我们在上面不断的累加功能。这些会涉及到SQL解析,SQL执行,数据存储等,整个初赛阶段下来,可以让我们对整个数据库的各个模块的有更清晰的认识。以下附上初赛题目链接,我就不一一介绍题目了。

https://oceanbase-partner.github.io/lectures-on-dbms-implementation/miniob-topics

复赛阶段

在这个阶段,要直接改动OceanBase数据库,整整三百万行,编译都要半个小时,恐怖。比赛题目是让我们去对Nest Loop Join做性能优化,官方提供了相关代码和流程的解析来帮助理解源码。对我个人而言,一方面有了一个契机去接触和学习这种大规模的开源系统,一方面也通过自己去做查询优化,加深了对理论知识的理解。

决赛阶段

决赛采用黑客松的模式,题目是数据压缩。这个功能在面向磁盘的数据库都会涉及到。在这个阶段,我们可以将自己学习的压缩算法和行列存储知识应用到具体的数据库中。整个比赛下来,让我们进一步体会到数据压缩在数据库存储中的重要性。

比赛的体验还是很不错的,赛题指引很到位,工作人员也很负责。就我而言,参与这个比赛是一个很好的深入学习数据库的机会,经过实际动手,会对数据库内核的设计有更多的理解。个人比较推荐将miniob作为初学数据库内核的练手工具,也很推荐参与OceanBase数据库大赛,真正动手实现数据库内核。

3 个赞

好羡慕你们现在有这么多比赛可以参加,在学校就开始沉淀自己

点赞!感谢分享!

现在的年轻人是真的很优秀。

另外,除了拿miniob过来练手,还可以完善一下miniob,Miniob现在还是有蛮多需要改进的地方的。

很厉害,其实OB的代码就算是内部研发人员有时候也很难优化。

希望将来有机会在数据库内核领域重逢。

我们今年还会再玩ob 大赛


  1. 你有什么建议吗?
  2. 你愿意推荐给你师弟吗? 

可以针对OB进行个性化周边工具;针对现有功能,做功能增强,或者二次开发等也可以加入大赛。

可以丰富周边工具,后续可以继续完善工具;

二次开发比如新增PG语法等实现,均有可能