Tom lane“糟老头子坏得很”可不是我说的
文中参考文档点击阅读原文打开, 同时推荐2个学习环境:
1、懒人Docker镜像, 已打包200+插件:《最好的PostgreSQL学习镜像》
2、有web浏览器就能用的云起实验室: 《免费体验PolarDB开源数据库》
3、PolarDB开源数据库内核、最佳实践等学习图谱: https://www.aliyun.com/database/openpolardb/activity
Tom lane,目前最老的PG核心comitter
Tom lane,目前最老的PG核心comitter。
外界对他的评价可能是“糟老头子坏得很”. 这个评价绝对不是空穴来风,参考图二的调侃“Tom lane 只会 reject patch”.
1、从git.postgresql.org可以看到tom lane提交的代码和report大多数都是bug fix, 或者revert已提交的patch, 或者是一些小修小补类的代码.
2、从pg-hacker maillist (https://www.postgresql.org/list/pgsql-hackers/) 里面看各种的讨论, tom lane像是块铁板, 你提的patch想过去是非常艰难的, 会各种“刁难”你. 有些patch已经讨论了十几年, 很多作者扛不住就放弃了, 干嘛呢? 当雷锋还这么难?
2022以前, 每个版本的发布都令人惊喜, 很多重大功能. 2022(15版本)开始挤牙膏依赖, 增长速度放缓, tom lane一定程度上阻碍了PG的发展速度.
通过PG官网特征矩阵的数据(https://www.postgresql.org/about/featurematrix/)可以证明以上观点.
不过仔细想想你们企业的核心数据库产品, 你敢用来存放身家性命的产品, 最重要的是什么?我个人认为的排序:
可靠,安全,稳定,性能,体验,功能。
如果要给PG贴个标签, 在tom lane心中应该是“PG是值得信赖的数据库, 可以放心承载企业核心数据”. 所以他才会如此执着的打磨PG的代码. 我记得tom lane在一次14大版本刚发布不久就发现了一个可能导致数据损坏的bug的事情上大发雷霆的狂喷: 你们这样搞是不行滴, 是会让PG在用户中失去信心滴, PG是要承载企业核心数据滴.
这个定位没毛病, 但是会阻碍PG的流行, 我个人认为并不是非此即彼的, 就像汽车的三大件是发动机、变速箱、底盘, 但是你做好这三大件的基础上可以在其他特性上再突出啊, 例如外观、音响、多媒体等等. 如果所有车子只关注三大件, 还有个毛线的差异化.
我秉承的观点PG要打造好底盘(可靠,安全,稳定), 同时打造好它的扩展能力(指不需要动内核来方便的扩展PG的能力, 让更多外围业务专家可以参与到PG生态的发展.). 从传播角度, 深度参与就意味着投入了时间成本, 粘性是很高的.
参考我的github (github.com/digoal/blog) :
11、[《[直播]大话数据库终局之战》](202009/20200926_03.md)
12、[《未来数据库方向 - 以及PostgreSQL 有价值的插件、可改进功能、开放接口 (202005)》](202005/20200527_06.md)
所以我非常尊敬tom lane, 也非常不爽的是tom lane对扩展能力patch的reject, 以及对已经明显影响PG基本盘的功能的reject. 例如拒绝babelfish提的wire protocol扩展, 拒绝tam的扩展, 拒绝connection proxy等等.
文章中的参考文档请点击阅读原文获得.
欢迎关注我的github (https://github.com/digoal/blog) , 学习数据库不迷路.
近期正在写公开课材料, 未来将通过视频号推出, 欢迎关注视频号: