暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PostgreSQL插件的艺术

君子当盘 2021-08-11
839

在PostgreSQL中,上层最令人称道的,莫过于支持hook的插件(extensions)机制了。

不仅在于实现整个数据库系统的解耦,更重要的,也激发了开源贡献者的集思广益。

俗话说,一流的厂商做接口,超一流的厂商做平台。

笔者在从事PG开发之前,也曾接触过chromium、openldap、openssl等产品。

很显然,chromium就是同样的插件机制。

包括最近入手使用的vscode工具,同样以丰富的插件集成俘获了Developers的芳心。

而openldap、openssl等虽然没有明显提及插件的概念,但不管是openldap丰富的参数配置,抑或是openssl开放的函数指针,无疑与插件的思想不谋而合。

再仔细想想,企鹅小程序、应用app,操作系统的外围......

形形色色的功能特性,都是万变不离其宗地围绕着某个“中心思想”来转动。

插件的逐步扩展,是产品的逐渐壮大的过程。

所谓开局一个鲲,成长靠吞噬,依托插件的发展,产品的场景适应性也在一步一步地滚雪球式成长。

堪称艺术!

我们知道,在postgresql中,插件的实现,无非就是函数指针和动态库的结合而已。

这在几乎大多数产品中均有体现。

至少,在作为C/C++后台研发的笔者看来,服务端程序少不了采纳这种思路。

例如,Linux中的PAM机制,也是如此。

PostgreSQL中的插件支持,除了官网介绍,或者也可简单看一下这里的罗列:

https://www.modb.pro/db/57986


从代码角度,也可窥见一斑。


另外,要理解PostgreSQL本身,从插件的实现反推过去,也不失为一种学习的过程。

比如监控数据库信息,比如查询页面校验值等,对当前DB的结构都是一种熟悉的策略。


本文标题大了一些,仅仅是从插件的实现和使用上,多一些对数据库的了解和思考。


文章转载自君子当盘,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论