数据库应该注意哪些问题-数据库并发操作通常会带来哪些问题
数据库最早可以追溯到上世纪 60 年代,和当代电子计算机属于同一时代的产物。从问世那一天起,数据库就承担着向上支撑应用软件,向下调动系统资源的功能,在 IT 架构中处于核心位置,被誉为“软件行业皇冠上的明珠”。但国内数据库领域研发人才紧缺,严重影响着数据库产业发展。
那么,数据库人才究竟为什么会短缺数据库应该注意哪些问题?又该如何解决数据库人才面临的挑战?带着这些问题,我们采访数据库应该注意哪些问题了 PingCAP 高校关系与人才生态负责人王岩广老师,请他分享 PingCAP 在数据库人才领域的思考与尝试。
视频加载中...
数据库的人才挑战以国内的人才需求状况为例,高校毕业科班出身并投身于分布式数据库的开发者,每年只有 6000 — 7000 人。但对应到数据库行业,对人才的需求量究竟有多大呢?王岩广老师给出了一个数字—— 10倍,也就是每年需要 60000 — 70000 人。这个缺口不容小觑,如果不加以重视的话,数据库开发者就会面临新鲜血液短缺,甚至缺乏持续动力,面临“后继无人”的境地。
目前,国内高校中关于数据库的课程设置,还是以数据库使用及基于 SQL Server、MySQL 或 Oracle 等数据库做应用开发为主。从课程角度看,以关系型数据库为例,主要分为三类:一类是关于数据库表、数据的组织方式,如 *** 论、关系代数、关系范式、SQL 语言;一类是关于 DBMS 实现的课程;还有一类是工业界数据库的管理运维课程。
然而,在近十几年中,中国互联网经济带来的对于数据管理复杂度的需求,已经催生了对更复杂 DBMS 内核实现人才的需求。但社会需求传导回高校教育尚需时间。
可能有人会问,除高校外,社会中也存在各种各样的的数据库技术培训机构,他们为什么不能填补这个人才空缺呢?这主要是因为相对于数据库内核开发岗位而言,对数据库使用或管理运维的岗位需求总量更大,社会培训机构普遍瞄准的肯定是更大空间的数据库运维市场,而对于 DBMS 开发这样知识路径很深,且需要掌握编译原理、操作系统、分布式系统等基础知识,同时从整体人才需求量而言又不像前者这样大的课程缺乏投入动力。
PingCAP Talent Plan 的缘起2018 年,PingCAP 创始人团队的刘奇和崔秋一起去美国湾区,参加了一个数据库行业会议。他们注意到一个令其印象深刻的现象,那个会议里有很多讲师是从教育界和学术界来的,包括一些教授、讲师甚至博士生。他们发现,这些人的理论水平、科研水平、工程水平都很厉害,这件事情对他们触动很大,于是回国后他们敏锐地决定要与高校开启一些科研合作。
这就是 Talent Plan 的缘起。为了解决数据库内核人才挑战,PingCAP 推出了开源数据库开发课程 ——Talent Plan 。通过联合优秀高校和企业,面向全国各高校数据库开发人才培养打造最佳实践平台,通过结业考核的学员还将获得官方认证的结业证书。
“分布式数据库和分布式系统都是比较新的领域,回想起当年刚学习这些内容时最大的困难就是没有系统的理论+循序渐进的实践结合的平台和课程,只能一边看零散的资料一边在工作中摸索,于是就有了做 Talent Plan 的想法,很高兴看到当时的初心现在变成了现实。” —— PingCAP 联合创始人兼 CTO 黄东旭
与高校进行科研合作,需要学生能够理解工业界产品,Talent Plan 就成为将学术界与工业界连接起来的那座桥梁。与 PingCAP 有合作关系的学校学生都能通过 Talent Plan 快速地了解 TiDB 等产品。
2018 年,一个迷你的 Talent Plan 0.1 版本开设起来了。从 0.1、0.2 到 1.0、2.0, Talent Plan 的路径模块、材料不断增加,不断迭代升级,目前学员已经累计超过 2000 多名。
Talent plan 课程体系特点在学习过程中,很多学员会将 Talent Plan 与 MIT 6.824 这样的侧重分布式理论的课程相比较。实际上,Talent Plan 是一个比 MIT 6.824 大得多的课程体系。MIT 6.824 严格意义并不是个数据库课程体系,它主要讲的是分布式系统,在 Talent Plan 中,PingCAP 为了致敬,用 Rust 语言重新实现了一遍 MIT 6.824 ,将其作为一个课程组件。
据王岩广介绍,Talent Plan 的课程体系中包括了 GitHub 如何用、开源怎么协作,甚至还有 Rust 和 Go 语言的基本功训练。为了帮助理解 TiDB ,Talent Plan 课程中还提供了 TinyKV 和 TiDB Server 的教学版本 TinySQL。
对于学员而言,Talent Plan 的课程具有很高的难度。例如,如果想要全面理解像 TinyKV 这样的模块大概要用两个月时间,每天需要花四到五个小时,是非常挑战的一门课。所以有些学生在学 Talent Plan 前,就会先去学 MIT 6.824 ,对 Raft 协议有一个基本的认识后,才会着手去学习 TinyKV。因为 TinyKV 里面除了 Raft 还有 Multi Raft、 MVCC 以及分布式事务模块,光这一个模块就比 MIT 6.824 要多很多东西,学习的工作量很大,可以说真的是一个“小火焰山”。
如何保证学习体验?为了让更多学员不会对体系庞大、内容艰深的 Talent Plan 课程望而却步,或是半途而废,PingCAP 也在通过一系列举措,将学习 Talent Plan 的顺滑度变得更加平缓。
第一,举办学习营。春节前,王岩广老师的团队刚刚举办了一期 Talent Plan 学习营。学习营以线上自学为主,参加学习分享讲座为辅,PingCAP 会邀请往届毕业的学员做导师,将自己学习过程中遇到的坑和必要的知识点分享给其他学员,帮助学员们将时间用在真正关键的学习上。学习营规模每期大概在 100-200 名学员,春节前这期参与人数甚至达到 400 人。
第二,Talent Plan 课程体系演进。PingCAP 目前正在进行 Talentplan 3.0 的迭代。目标也是为使学员学习课程更加平缓,增加一些必要的基础知识信息。同时也会办一些短期培训,比如和中国计算机学会合作,在 VLDB 夏令营上就做过为期 6 天的集中短训。
另外,PingCAP 还会通过举办一些比赛,吸引一些在数据库的开发和运维方面比较优秀,有学习数据库开发潜质的学员。同时,课程相关的文档也在不断积累。但是学习当然是密度较大的、常态化的,也是需要一直跟进“打卡”。
未来,PingCAP 还会将 Talent Plan 变成一个学习社区,这就不仅仅是 PingCAP 一家公司来主导了,里面的所有参与者都是利益相关方,资深的成员会很自然地形成帮带制度,高分学员还可以成为导师,来自一线工业界的工程师也可以进来指导开发经验。大家共同努力,共同享用,建设一个全新的、开放的、共享的、共治的,以开源模式引领的一种学习社区。
第三,通过学习社区共创一本 Talent Plan 的书。之前,Talent Plan 虽然也有电子文档、论文、资料、PPT、实操课等,但一直没有一本实体的书。国内学生的习惯还是希望能有一本比较系统的书,从概念到实操到作业,像是教材一样。有了这样的主线,学习体验也会更好一些。
拥抱开源的课程作为 PingCAP 出手的项目,最重要的特点当然是开源。Talent Plan 所有课程从 0.1 起就是开源的,课程做出来以后,PingCAP 立刻将其放在 GitHub 上面。目前,它在 Github 上的赞星数高达 7000 余,在数据库课程领域里面可能是最高的一个。
后来的发展,完全超出了 PingCAP 的预期。Talent Plan 学员来源于 200 多所学校,其中包括约 50 所境外学校。由于课程是英文的,逐渐地,与 PingCAP 还没建立合作关系的国际学校,包括 MIT、CMU,以及日本和欧洲的一些学校也都来了。
Talent Plan 的成功,不仅仅是解决了 PingCAP 的问题,更大的动力是因为它解决的是行业问题。在人才这个困局面前,PingCAP 所有的行业竞争对手都变成友商,大家面临的问题是一样的,这是一个有利行业、有利于国家社会的事情,所以 PingCAP 会一直持续地投入下去。
对 Talent Plan 学员们的建议王岩广老师对学员们的第一条建议就是“拥抱开源”。在分布式数据库领域,互联网、GitHub 里的学习资料其实有很多,如果不去拥抱开源,可能就很难进入这个领域。再者,学员们未来如果从事分布式数据库领域开发工作,工作的方式很可能还是围绕着开源方式展开,拥抱开源是大势所趋。他认为,新时代学生求职时的简历不再是一页纸,很可能会是他的 GitHub ID。他做过哪些开源项目,提过哪些 issue,是哪些项目的 Contributor,从 GitHub 上一目了然,它比传统一页纸的简历更加真实可信。
同时,开源项目往往都不仅仅是指开源产品本身,而是更大的开源生态范畴。如 TiDB 生态中包含着众多周边工具,大数据工具,甚至还有其他企业做的发行版。这些生态都需要开发人才,如果你对生态中的核心产品很熟,会成为生态中非常受欢迎的人才,就业空间也会很大。
第二条学习建议是学习路径。由于 Talent Plan 整个课程体系难度较大,学员们可以先从单机数据库课程开始学习,比如 Andy Pavlo 的15445 课程、MIT 6.824 课程,这些都可以作为前序基础知识。
Talent Plan 的意义目前,数据库人才需求的挑战还很大,但是 Talent Plan,以及整个 PingCAP Education 都在不懈努力,让每一个有志学生都能够很快地通过一个开源的学习通道,进入开源分布式数据库的开发生态里。
PingCAP 用开源融化了工程界和学术界之间的界限,并改变了教学模式,老师和学生之间不再是传统的授课关系,而是变成学习社区里共同学研的平等关系。欢迎更多小伙伴们加入 Talent Plan 中,通过学习最终踏上分布式数据库“高阶玩家”的平台,也欢迎大家提供建议、贡献智慧,一起打造“共建共享”的学习社区!