有小伙伴截了一张Twitter上的图,让姜老师谈谈对于国产数据库们的看法。不是跟你们说我不谈国产数据库的么?怎么还是让我谈这么敏感的话题呢?这东西说多了得罪人,说少了就和德哥一样,说了等于没说。
Andy Pavlo(下简称:Andy)是卡内基梅隆大学的副教授,主要的研究方向就是数据库。I am an Associate Professor of Databaseology in the Computer Science Department at Carnegie Mellon University. My research interest is in database management systems, specifically main memory systems, self-driving / autonomous architectures, transaction processing systems, and large-scale data analytics. At CMU, I am a member of the Database Group and the Parallel Data Laboratory. I am the co-founder and CEO of OtterTune.
在他的 Twitter 上可以发现,他与 MySQL 界的一些大佬还是有些互动的,比如 Facebook 的 Mark, MySQL InnoDB 团队的大佬 Sunny 等人。那么 Andy 对我们中国的国产数据库有啥意见呢?Andy 说国产数据库号称是革命性(revolutionary),但当他从文档和源码研究后,发现国产数据库不过只是 MySQL 和 PostgreSQL 的分支版本而已。说到这里,姜老师就不开心了。然后就想在他的 Twitter 下留言:以上全错。
或许也有部分同学会认同 Andy 的观点,认为所谓的分支就是抄袭,然后包装下就拿出去做生意了。你让一个孩子刚出生就会走路,用碗筷,打电脑,这是不可能的。孩子都是看着别人,或者别人教他,慢慢从模仿开始,然后通过不断反复练习,才能最终掌握一个又一个的技能包。
如果要较真的话,MySQL 最早抄的是 mSQL 源码;PostgreSQL 抄的是 Ingres 源码;Linux 抄的是 Minix 源码;InnoDB 最早的源码,也是 Heikki Tuuri 借鉴之前实习公司的数据库产品。所以,从进化论的角度看,其实每个软件产品都会有一个祖先,然后从祖先慢慢演进到一个个现代化的产品,在演进的过程中,可能变异、进化为了新的物种。对于国产数据库而言,因为起步的较晚,所以我们从 MySQL 和 PostgreSQL 这一代开始,没有任何问题。但前提是我们要能自主可控这些代码。我不清楚 PostgreSQL 的情况,但国内互联网大厂对于 MySQL 源码的掌控已经如火纯青,再加上国内互联网大厂核心业务、核心金融业务早已稳定跑在 MySQL 数据库有十数年的经验,基于 MySQL 进行国产数据库研发是一件再也正常不过的事情。
中国要造一架飞机,如不先把苏-27拆解,完成一个个零部件国产化和组装,然后再进行技术升级和飞行员后备人才的储备,请问我们如何造出歼-20、C919这样的飞机?所以,Andy 教授的格局真的太小,因为他只看到眼前的苟且,而没有看到未来中国数据库的星辰大海。
我在技术圈也听到另一种声音,说我们有些数据库是东拼西凑的产品,比如 TiDB 数据库,本质就是 Raft + RocksDB/ClickHouse + SQL,没有任何创新。
从技术角度看,或许创新并不是特别多。但从商业角度看,拼凑是很正常的商业模式,或者我们再说的专业点,叫:集成。只要集成度够高,能够满足用户的需求,那么就能获得客户,占领市场,最终也可以上市。业界典型的就是 ElasticSearch,他本质就是对于 Apache Lucene 的封装,提供了更好用的可视化工具,接着就占据了数据搜索的市场,最终完成了上市,现在市值80亿美金:
拿着开源的技术做一层封装,最终变成一个商业产品,这是很正常的商业逻辑。再看看各种 Linux 的发行版本,本质也都是靠这种模式上市和运作。跳出技术圈,再看新能源赛道,你会发现本质上目前绝大部分的新能源车基本都以特斯拉开源的专利进行造车,但是他们也都获得了商业上的巨大成功。最后的最后,姜老师想表达一个观点:未来划时代的数据库系统,一定会诞生在中国。一方面,通过这十数年去 IOE 项目的历练,中国已经较好的完成数据库内核研发人员的技术储备,特别是互联网公司的数据库人才储备,已经到了随意修改 MySQL 源码的自在境界。
另一方面,也是最重要的一个因素,中国的人口足够多,有足够的业务量去验证我们的数据库产品。只要产品能满足用户某一特定需求,相信这款数据库很快就能脱颖而出。反过来说,如果没有中国去 IOE 的运作,没有中国互联网企业大规模使用 MySQL 数据库,MySQL 也不太会成为现在数据库界的当红炸子鸡,或许他依然被 Oracle、SQL Server、DB2 这些商业数据库压着。若不是把生产工厂放到上海,或许现在 Elon Musk 依然债务缠身,特斯拉的订单也不会这么火爆,更别提 Elon 成为世界首富的可能了。
综上所述,未来划时代的数据库不一定非得是 MySQL 的分支版本,也不一定非得是分布式数据库的形态,但它必将诞生在中国。BTW,想要购买姜老师《MySQL技术内幕:InnoDB存储引擎》签名版的,可扫下方二维码:
全文完,感谢你的耐心阅读。
微信平台改变了推送规则,如果你还想看到我的文章,请一定给本文“点赞”、“在看”、“分享” 三连,新文章推送才会第一时间出现在你的微信里。认识这么久,我可不想丢掉你。
每周五、六,不定期直播,分享技术干货
IMG群是码农的交流社区,IMG微信群交流内容包括但不限于技术、经济、军事、八卦等话题。欢迎有态度的码农们加入IMG大家庭。IMG目前有少林群、武当群、峨眉群、华山群、M悦会(高端VIP群)。仅限码农入群,猎头或其他行业勿加,入群请加姜老师个人微信 82946772,并备注:码农入IMG群