开源新力量|3TS 邢天骋:项目实战教我用多元化视角解决问题,这次经历才能算我真正体验开源

2023-10-27 14:36:15 浏览数 (1)

请简单介绍一下参与的项目和本次项目任务 。

邢天骋:我选择参加的是3TS项目实战,是腾讯TDSQL团队与中国人民大学联合研制的面向数据库事务处理的验证系统。该系统旨在通过设计和构建事务(包括分布式事务)处理统一框架,并通过框架提供的访问接口,方便使用者快速构建新的并发控制算法;通过验证系统提供的测试床,可以方便用户根据应用场景的需要,对目前主流的并发控制算法在相同的测试环境下进行公平的性能比较,选择一种最佳的并发控制算法。目前,验证系统已集成13种主流的并发控制算法,提供了TPC-C、PPS、YCSB等常见基准测试。

项目任务:基于3TS-Coo框架、测试数据库的一致性

目标对象:数据库爱好者、初学者(会SQL语句)、DBA等

此题目是判断数据库事务的执行正确性(一致性),核心任务是测试数据库的一致性,包括但不限于如下数据库(可以是3TS测过之外的任何数据库): YugabyteDB、Cassandra、FaunaDB、Redis-Raft、MariaDB、Dgraph

基本要求:数据库事务处理知识,Linux系统机器(4核8G以上机器),C ,Python, SQL

预备知识:

1.数据库事务处理数据一致性评估验证模型:https://github.com/Tencent/3TS/tree/coo-consistency-check/

2.以往测试结果:https://coo3ts.github.io/result/

预期结果:

1.初级:基于测试框架部署代码,部署单机数据库(e.g., PostgreSQL, MySQL)的一致性测试与验证

2.中级:熟悉测试框架、输出阅读文档、输出功能文档、完善开源项目文档

3.高级:使用测试框架测试更多数据库的一致性

收获:

1.熟悉数据库事务处理技术与一致性的概念

2.掌握各种体系下一致性的概念及其异同

请简单介绍一下自己,及你的开源经历。

邢天骋:我是来自南京大学软件学院的邢天骋。本次参与在这次以前,我并没有太多的开源项目经历,但是我知道开源是一项非常有意义的事情。其实计算机相关专业处处都离不开开源,比方说我们最常用的代码托管平台上就有很多的开源项目。我们不仅可以使用他们的成果,也可以从源代码中进一步学习到需要的知识。在此项目之前,我认为我就是这样一个开源的受益者,在平时的科研学习过程当中。因为越来越多的论文作者会将自己的代码开源,供读者进行复现,因此实际上我也参与到了不少开源活动。

请介绍一下你在本次腾讯犀牛鸟计划中参与的具体工作和当前项目收获或成果?

邢天骋:第一阶段完成了使用3TS-Coo框架测试MySQL和Postgresql的一致性,并且现在正在着手开发自己的数据库测试平台。具体工作是整合数据库测试的一些现有方法,构成一个方便部署、选择多样的测试平台。目前已经适配MySQL、Postgresql、SQLite等常用数据库,并且逐步加入C4、PolySI等数据库隔离级别测试方法。

恭喜你成功入选项目实战,可以为后续想参与该项目的同学们分享一下你的项目申请书是如何编写的吗?有什么亮点或者攻略吗?

邢天骋:项目申请书,首先是比较基本的个人简历或者介绍。另外,在申请书当中写上相关的课程学习以及项目经验可能比较有用。课程可以让导师大致了解你所掌握的技术,而项目则可以展现一定的开源经历,提高竞争力。当进入到项目以后,还会有第二阶段的筛选。导师会比较注重同学们在第一阶段完成的报告和代码的质量,因此认真完成、勤于思考的同学会更受青睐。

参与项目实战的过程中有什么印象深刻的经历与体会呢?

邢天骋:项目的实战加深了我对于数据库本身以及其测试方法的理解。数据库管理系统是一个复杂且精细的体系,作为开发人员应当保证其在绝大多数情况下不出任何差错。而由于其规模,这并不是一个容易的工作,因此数据库测试有着重大的意义。数据库测试确保数据库系统在各种条件下都能正常、安全、高效地进行工作,从而提供稳定、可靠的数据服务。而在此次项目实战中,我们关注并发和事务管理,测试数据库的并发控制和事务管理能力,以确保数据的一致性和隔离性。

另外项目实战教会我开源的意识。正如先前所说的,我认为这次的经历才能算我真正成为开源的贡献者。开源精神中的重要一项就是协作,相比于闭门造车式地构建项目,协作可以带来更多的创新和效率。当大家一起为项目贡献代码或是调试测试时,他们有着各自的简介和技能,提供不同的视角来解决问题。这种多元的视角可以更全面地解决问题,找到一个更好的方案。这就是我从本次项目实战当中体会到的。

参与项目实战期间,有没有遇到哪些困难?最后是如何解决的呢?

邢天骋:我觉得困难更多的是在专业知识上面吧。运行起来项目是一个前提,但是只是需要掌握基本的编译方法、数据库使用等等。分析运行得到的结果则需要更多的知识储备,包括我原本并不算熟悉的事务隔离级别的相关性质。但是得益于社区里丰富的资源以及导师的帮助,此外当然还可以通过GPT等工具查询,我可以轻松地了解到这一系列的专业知识,于是很多问题便迎刃而解了。

项目实战期间,社区和导师们给你带来了哪些帮助?你认为自己获得了哪些成长?

邢天骋:开源社区和导师腾讯开源社区当中有丰富的知识可以学习。不仅能够学习本项目3TS相关的技术知识,还有各种开源实践方法。导师陈育兴老师是一名经验丰富的数据库工程师,给我们分享了许多更为专业的知识。每当我们遇到数据库系统原理层面不太确定的问题时便会请教老师。由于十分熟悉各种数据库,老师不仅能够从原理上向我们解释清楚,还会引导我们设计一些小实验进行验证。这对我理解数据库起到了非常大的帮助。成长我获得的成长在于能够更从容地参与到开源项目之中。以前我总会觉得,一个成熟的项目或许对我来说遥不可及。其复杂的结构、不熟悉的编程方法总会让我望而却步。另外,此前的合作编写代码情况并不算多,因此在这次的项目当中,才真正地适应了共同开发的工作流。总的来说就是一个从畏手畏脚到熟悉的过程,通过一步步地消化、理解代码,再到提出自己的想法并进行实现。

越来越多的学生参与到腾讯犀牛鸟开源人才培养计划,你对学弟学妹们有什么建议或者经验分享呢?

邢天骋:能够参与到开源项目实践当中是一件大有裨益的事情。我的建议是如果学弟学妹们有参加开源项目的想法,一定不要犹豫,找一个自己能力以内或者稍稍高出能力范围的项目进行动手实践。尽早地开始熟悉起来一些开发流程,积累一些开源项目经验。这个过程的一开始绝对是不容易的,所以从自己的兴趣点出发寻找项目十分关键,这样可以保证持续地投入精力钻研。

你认为参与腾讯犀牛鸟开源人才培养计划,对你的的职业发展和个人成长有什么帮助吗?

邢天骋:参与腾讯犀牛鸟开源人才培养计划,最直接的帮助便是项目实践经历的累积。犀牛鸟计划让我们真正地加入到一个有一定规模的项目当中,这是十分难得的经历。这很大程度上提升了我的技术能力,因为需要接触到各种技术和工具,熟悉编程语言和框架等等。共同开发的过程也让我了解到如何在团队环境中工作,学习到团队如何处理各种问题和挑战。我认为这无论是对个人能力,还是将来的职业发展都是大有帮助的。

你对下一届的腾讯犀牛鸟开源人才培养计划有什么期望与建议吗?

邢天骋:希望能有更多的项目,可以让更多同学加入进来。也祝腾讯犀牛鸟开源人才培养计划越来越好!

0 人点赞