PostgreSQL学徒

PostgreSQL中文社区成都站技术沙龙完美收官啦

前言

PostgreSQL 中文社区成都站技术沙龙活动完美收官啦!✿✿ヽ(°▽°)ノ✿ 很紧张,笔者是第一次以一个主持人的身份站在台前与线上线下的小伙伴进行见面,为了客串好这么一个角色,我从周四就开始筹划措辞、议程和互动环节等,好在结果是可喜的,我没有怯场,全程主持也还算流利,看样子以后又多了转行方向了。

那么此次沙龙有哪些精彩花絮和看点呢?且听我细细道来 ~

花絮

首位登场的嘉宾是来自四维纵横的姚珂男,他分享的议题是《The Dark Side of the Optimizer》,主要介绍了数据库查询优化器的能力边界,什么样的查询可以被称之为优化器刺客,以及我们该如何预防。这个议题由于内容太过于干货,一讲就停不下来啊 ~ 讲述了很多优化器的内容和理论,对于内核开发者尤为有用

Image

我印象深刻的一点是姚老师举了个例子 SELECT * FROM TABLE ORDER BY xx limit 1; 各位是不是十分眼熟?没错, limit 导致 SQL 出问题的案例数之不尽,一篇十分典型的案例来自于 ken 师傅 👉🏻 一个有趣的SQL优化案例,里面也介绍了因为 limit 导致的执行计划选择错误,最终通过修改 SQL 解决了问题。论根本原因还是在于优化器去做判断的时候假设数据是均匀的,但是实际上数据分布是不均匀的。建议各位都去阅读一下,十分典型。

第二位登场的嘉宾是来自于腾讯云的何敏,敏哥目前在腾讯云负责TBase相关的工作。他分享的议题是《PostgreSQL分布式数据库探究》,主要介绍了分布式相关的理论诸如2pc/3pc/TCC/paxos等,以及PostgreSQL系列的分布式数据库:just a extension的 citus、开源界鼻祖 Greenplum,以及经典架构 PGXC/XL等,除此之外,还介绍了一些 NewSQL和一些其他类型的分布式数据库,对于分布式数据库感兴趣的童鞋可以回看一下。

Image

第三位登场的嘉宾是来自南大通用的李凯,凯哥分享的议题是《GBase 8c基于PostgreSQL开源生态的创新实践》,GBase 8c同样衍生于经典的PGXC/XL架构,另外据悉,GBase 8c已经将内核换成了 openGauss。南大通用是国内很早就在做自研数据库的厂商,包括耳熟能详的GBase8a基于列存的分析型数据,Gbase8s / 8t 等等,以及当天分享的Gbase8c,Gbase8c 同样优化了传统PGXL的老大难问题——GTM单点瓶颈,由于全局事务快照的分发机制和独特的MVCC实现机制,导致GTM特别容易成为瓶颈。

Image

另外凯哥还提到了一个Gbase8c十分新颖的创新点:全局死锁检测机制,这个死锁的检测机制实现比较flexible,提供了一个参数来控制事务被cancel的优先级,贴近实际需求,假设有一个大事务和一个小事务发生了死锁冲突,大事务跑了N久被cancel了,而小事务没有被cancel,这就可能比较抓狂了,而在 PostgreSQL 中一般都是发起死锁检测的事务被cancel,这一点点个赞 👍🏻

Image

第四位嘉宾是来自磐吉云数的冯若航,由于疫情原因,若航哥只能线上分享了。他的议题是《论PostgreSQL的使用成本与性能表现》,还是熟悉的配方熟悉的味道——单口相声,听若航哥演进就像在听相声~

Image

不过这篇议题阐述了一个不算事实的事实:在单机数据库能够承载的体量范围内,单机数据库性能表现完虐主流的分布式数据库,因此我们需要知道的是,分布式数据库不是银弹,盲目随大流硬上分布式数据库,可能会得不偿失。

Image

因为分布式数据库会带来运维的复杂性、组件繁多带来的额外失效点、生态的完整性以及功能性上的缺失等(大多数分布式数据库就不支持存储过程函数等)既然如此,从某些方面将PostgreSQL称为HTAP也不为过呀。另外之前我曾看到一个十分fancy的观点:Excel的HTAP更厉害,带有行列转换,还带可视化,前提是每个"表"的数据量最高不超过65535行,hiahia,手动狗头🐶,另外怎么能少得了那几张经典的大鱼吃小鱼呢 👇🏻

Image

下午场打头阵的是来自成都文武信息的李建平,他分享的议题是《如何参与 PostgreSQL 贡献》,这真是个令人兴奋的话题!

Image

不管是给官方文档捉虫,亦或是反馈BUG、文档翻译,又或者是直接给开源社区提交代码等等,这些都是参与到开源社区建设的方式方法,毕竟一款开源产品是离不开广大使用者以及 feedback 的。by the way,我们知道在14版本中引入了一个重要功能,就是idle_session_timeout,这个参数就是控制一个会话空闲了多久主动断开,这个在以前的版本是比较头疼的,只有idle in transaction timeout参数,只能够杀长事务会话,PostgreSQL和Oracle一样都是进程模型,每个连接初始内存大概2MB,但是假如一个链接连上来之后访问了很多对象,那么光是连接占用的内存就是一个很可观的数字了,所以需要合理控制连接的数量。因此在14之后的版本就很方便了,而这个patch则正是建平提交的代码,怎么样各位是不是跃跃欲试了。

另外各位老铁不要总是嫌弃社区开发功能慢,没办法,因为有一堆的流程啊 👇🏻

Image

第六位嘉宾是来自海能达通信的崔鹏,同样由于疫情的原因,只能线上分享了。崔鹏是个地地道道的东北人,一口声音就浓浓的东北味。他分享的议题是《浅谈大象时序TimescaleDB》,

Image

TimescaleDB是基于PostgreSQL的时序数据库插件,just a extension,因此可以完全继承PostgreSQL的功能,另外支持多种部署方式,包括单机/主从/分布式三种,非常适合工业化/物联网/车联网这类时序数据库的场景需求。

Image

接下来就是我上啦,我的议题是《PostgreSQL DBA Daily》,直译过来就是PostgreSQL DBA的日常,没错就是作为DBA,我们一天需要做些什么,怎么样摸鱼度过。我的演讲素材很简单,开局一张图,全靠一张嘴!各位现场的小伙伴也都拿到了纸质版的大图。这张图的整体风格还是十分诙谐的,里面也不乏很多傻屌表情包,让各位能够在获取知识点的同时,开心一笑。(容我放一张不那么丑美颜过的照片)

Image

另外很多小伙伴希望也能拿到纸质版的大图,这个后面我会做一次活动进行送出,各位可以留意公众号,用爱发电!

Image

最后一位压轴嘉宾是来自成都文武信息的总经理,同时也是中文社区的核心人员朱贤文,朱工分享的议题是《备份恢复,存储的可靠性》,对存储做了一个很不错的科普,听完之后,相信各位对存储可靠性的理解更加深刻了,选择一款可靠安全的存储也是一门至关重要的事情。另外zfs这个文件系统相较于ext4/xfs这类,各位可能不太熟悉,这个文件系统支持很多功能,比如自我修复能力、实时数据缩减技术等,各位感兴趣可以去了解一下

Image

另外打个小广告,朱工公司在招人ing,作为PostgreSQL的黄埔军校,包括我自己、建平、敏哥等都是从文武信息出身的(还有一个也在腾讯云)。所以各位感兴趣的都可以直接联系朱工啦,让你的技术突飞猛进,真BOSS直聘!

后话

此次沙龙筹划了大半年,能够召开真的实属不易,在此也感谢开源中国、Dbaplus社区对于此次活动的大力支持,当然还有能够到现场参会的各位小伙伴,不管是PGer,还是数据库相关从业者,亦或是其他领域的小伙伴,能够在疫情肆虐的当下来参会,的确是一件难能可贵的事情。

相信各位也能够看到,PostgreSQL的势头十分火热,大有一飞冲天的趋势,学习PostgreSQL也成为了当下的不二之选。因此此次的沙龙主题:未来以来,将至已至,PostgreSQL的时与势,正是探讨了和PostgreSQL相关的最新热门技术、行业趋势、机遇与挑战等。

最后祝各位在学习PostgreSQL的道路上越陷越深...😏