前两回总结了2013、2015 DTCC/SACC我的三个主题。重点讲了“2014银监发39号文”的自主可控,对于搬砖工具人,还是有机会的。于是开始转型,向MySQL源码+Oracle逆向工程方向上卷。
Oracle逆向我熟,但MySQL的源码,不看个几年,也看不出来啥东西。卷了三年MySQL源码,2018年,当然要讲讲MySQL源码啊,所以这一年我的主题是:除了MySQL的源码,这次的PPT中,虽然没有Oracle的各种反汇编指令,但还是介绍了几个重要的Oracle函数,以及它们和MySQL逻辑的对应关系:

这三年我一直在想一个问题,如果要以MySQL源码为基础尝试产品化,要怎么搞?这当然可以,但MySQL背后的男人:拉里.埃里森,可并非好相与之辈。我在想,如何能对MySQL的源码,不做侵入性修改,又能把Oracle逆向工程的结果,融合进来。使用动态跟踪工具,学习Oracle性能资料、等待事件体系,为MySQL增加类似的体系。在2018年那个时段,eBPF还不太热门,动态跟踪的话,首推systemtap。 在DTCC2018中,我花了不少篇幅,介绍systemtap:虽然现在eBPF已经是绝对主流了,但systemtap在用户层的动态探针,也有自己的优势,至今在研究PG源码时,我偶尔还会使用systemtap。而且systemtap很简单,易上手。对systemtap感兴趣的,照我这个PPT,就能上手。但用动态跟踪在外部增强MySQL,这种方式,相当于带了几个杜蕾丝办事儿,这感觉,聊胜于无吧。而且,我们把时间线再往前拨一点,2016年,还发生了一件大事。2016年,在大洋彼岸,有一只蝴蝶,扇动了翅膀,混沌效应导致的影响,最终引发了国内数据库领域的泥石流。这只蝴蝶,就是特朗普。懂王于2016年11月,当选美国第45任总统。技术圈之外的人,并不了解,其实懂王单凭一己之力,推动了整个中国IT技术行业的跨越式发展。如果说《2014银监发39号文》,吹响了国产数据库从城邦时代走向争霸时代的号角,此前很多国产数据库都是“内部项目”,在这一时期,都在考虑走出去、逐鹿中原、争霸天下。 那么懂王的贸易战之后,国产数据库的“争霸天下”之战,正式开打。随后几百家国产数据库纷纷涌现,跑步进场,蹲坑占位。在政策加持下,各路神仙奉旨霸王硬上弓,抢钱、抢粮、抢娘们:我在DTCC2018的PPT中,专门有一页,介绍了这个事:这是美帝对中兴的制裁通告,它宣布了国产数据库元年开始,国产数据库进入乱纪元。数据库乱世,对于我等搬砖工具人,未尝不是一件好事。对于我这个超龄IT人来说,如果没有懂王为我续命,可能早几年前就黄袍加身了。如果要说“自主可控”的话,MySQL还是可以的。叠加MySQL庞大的用户群体,在“自主可控”时代,对于搬砖工具人,MySQL方向的机会还是很多的。当懂王把时代推进到了“国产化替代”时期后,情况就不一样了。MySQL当然可以上国产化替代的牌桌,但考虑MySQL、Oracle间复杂的关系,恐怕只有能力超群者,才可以无视M与O的关系,打出一条血路吧。对于普通搬砖工具人,在国产化替代的背景下,敢说这边风景独好的,也只有PostgreSQL了。没办法,我们不过是时代洪流中的沧海一粟,除了随波逐流,又能如何。至于三年中几百个钻研MySQL源码的日日夜夜,过去,就过去吧。进入IT行业已经20多年了,早已经习惯。上世纪九几年DOS我玩的精熟,还掌握了“高位内存驻留”这种大杀器。现在有谁听过这种上古神术吗!
PG的高自由度,可以做更多的事,PG + Oracle逆向,广阔天地,大有所为。 所以接下来的2019年,我没啥特别有深度的话题分享,就讲了一个很轻松的话题:小时候爱讲故事的同学,跟我们讲过一个“哥的爸的猜想”,是数学皇冠上的明珠。(哥德巴赫猜想)这个弟爸思,也是早被摘下的、一框珍珠中的一颗而已。我常说云相当于自如公寓这种模式,它是一种很好的使用模式上的创新。这一次的PPT中,不再有反汇编、寄存器、Oracle内部函数……,我还在转型之中,就讲讲云这个轻松的话题吧。这一年达梦在DTCC上发布了DM8,达梦学院院长张守帅张老师邀请我担任了发布会主持人。小时候就听过倪光南院士的故事,这次能于倪光南同台,还是小小激动了一把。“做为企业界杰出专家代表,于2018年和倪光南院士、方滨兴院士共话数据库自主可控”但随后听说,因为我为DM站台,被Oracle列入黑名单,我的Oracle ACE申请被拒了。幸好几年后PG分会授予我PG ACED,才算抚慰了我那颗受伤的心灵。其实我一直在宣传Oracle的强大,这种强大不是功能上的。对于数据库来说,功能上的强,只能算是“大“、”多“,而不是“强”。功能多,这一点其实是容易做到的。把程序员当填线宝宝往里填,个个996,堆功能,相对来说,是容易的。这是国内厂商的强项,功能上,我们应该不久就能追平Oracle。但,“强”这个字,就有点玄学了。很多时候你能理解一个人的强大,那么你离他也就不远了(潜台词是理解强大,也是需要相当功底的)。所以在技术上,Oracle怎么个强法,这里就不讨论了。换个角度吧,我们要相信,群众的眼睛是雪亮的,看一看db-engines排行榜,Oracle十数年都是榜一大哥,这样的数据库,你说它的赛道落后了、被我们弯道超车了,那就以你为准。找个例子来对比下,国内数据库,TiDB无论是技术上、还是国际化方面,都堪称一流,TiDB目前排在第72名。国际互联网大厂论文提供理论支持,新的技术架构,真分布式技术,Raft/Paxos理论……在国产数据库元年,2018年时候,我们真的可以相信换个赛道、弯道超车,不几年,“王师北定中原日,骑验输出Oracle”。 但6年过去了,我们能做到的,仅仅是榜上的分数增加几分:TiDB在2018年刚上榜时,得分低于1分。现在是5分左右。顶上四条线,分别是Oracle、MySQL、SQLSever和PosgreSQL。Oracle、MySQL得分都在1000以上,PG的得分是600多分,从2018年400分左右,6年间增加了240多分。db-engines得分有点太主观,这样吧,对比下公司规模:以另外一个一线数据库Oceanbase(OB)为例,在国内多家大型机构成功代替Oracle。官方认可的诞生日期是2010年。初期是支付宝的一个项目,曾在历年双11中,经历过无数次高并发、大数据量的捶打。和TiDB有相似之处(但架构也有不同),全新数据库架构、真分布式(还有大杀器单机分布式)、Raft/Paxos理论支持、……2018年国产数据库元年之后,OB决定破个世界记录,然后,仅1年时间,2019年10月,数据库权威机构国际事务处理性能委员会(Transaction Processing Performance Council)官网正式对外公布,由蚂蚁自主研发的金融级分布式关系数据库OceanBase,在TPC-C基准测试中,登顶世界第一。然后于2020年5月,OB再次刷新了由自己保持的世界纪录。在接连打破世界记录几年后,什么时候“王师北定中原日,骑验输出埃里森”呢?OB的研发人数,不太好和Oracle对比,因为没查到具体的OB研发人员人数。就看总人数吧,奥星贝斯目前总参保人数202人。还记得上面图中Oracle的人员配置吗。注意,我并不是要Diss OB和TiDB,只是从搬砖工具人角度,202人的规模,尚不足支撑搬砖工具人所需要的足够的广阔空间。我只是想表达,当你选择搬砖方向时,不妨多方位了解,这个方向是否足够广阔,机会足够的多。当然,新技术在初期,知道的人少,相关信息少,自然给人广度不够之感。但我写现在这篇文章时,是2024年9月份了。TiDB诞生自2015年、OB是2010年,在2018国产数据库元年之后,国内在国产数据库方向,有充足的资本热潮,而且TiDB、OB也都是国家政策的获益者,足足发展了6年。GDP世界第二、综合国力蓝星第二的国家,追着喂奶吃6年后。现在这个规模,我只能说,新型数据库的发展,尚不明朗。当然,从国产数据库选型角度,TiDB、OB都是极好的选择。是国产数据库的骄傲。企业国产数据库选型,和搬砖工具人职业发展,考虑的点是有不同的。这篇文章也并不是聊选型,而是职业发展。(选型的话,TiDB、OB都不错)从搬砖人角度,我不太会选择以TiDB/OB为代表的新架构数据库,无论从哪个角度看,新型数据库能提供的空间,深度、广度都还需要时间验证(其实已经验证了6年,不过,让子弹再飞几年吧)。但如果是天命人、或技术实力超群的人,都无谓。这种人是无所谓方向广不广阔的,他们甚至可以自己开拓方向。但我不行,我还是在db-engines前四大(Oracle、MySQL、SQLServer、PG)中找机会,更安全。在前四大中找机会,也并不是说就去搞Oracle/MySQL/PG,而是“相关”、“有关系”就行。
这个都懂,PG/MySQL几乎是半数以上国产数据库的root数据库。
像我前几年的MySQL源码+Oracle逆向,把前两大组合起来,我这种”选型“思路,是自然而然的最佳选择。
2018年,国产化替代后,这个方向转换成PG源码+Oracle逆向。说多了Oracle的”强“,并不是看空国产数据库。从长远看,我们一定能追平、超跃Oracle。逆向它的目的,就是为了更好的了解它的长处,学习你的敌人、超越敌人。
转换方向之后,这6年来又发生了什么,对搬砖工具人有什么影响,下一篇继续。