PostgreSQL 空闲会话超时
经过约八个月的努力,终于完成了 PostgreSQL 空闲会话超时断开的功能,该功能将在版本 14 中发布。这是我第一次向 PostgreSQL 提供功能,虽然之前也有向社区提供过补丁,但是这次整个功能(相对比较简单)被接受还是比较高兴的,感谢社区各位大佬的帮助和反馈。
经过约八个月的努力,终于完成了 PostgreSQL 空闲会话超时断开的功能,该功能将在版本 14 中发布。这是我第一次向 PostgreSQL 提供功能,虽然之前也有向社区提供过补丁,但是这次整个功能(相对比较简单)被接受还是比较高兴的,感谢社区各位大佬的帮助和反馈。
PostgreSQL 数据库在 9.0 中引入了物理复制,之前的文章中也有介绍。物理复制将主库中所有的更改都通过 WAL 日志流式地传输到备库中,备库通过重放 WAL 日志来实现同步。但是,物理复制也有其自身的局限性。
PostgreSQL 在版本 10 中引入了逻辑复制,它用于解决上述物理复制的局限性,同时业务复制开辟了一个新的方向。逻辑复制使用发布和订阅模式,一个或多个订阅者可以订阅一个发布者上的一个或多个发布。订阅者最初会从发布者那里收到复制的数据库对象的副本,并在同一对象上实时进行后续更改。
在 PostgreSQL 行级安全策略的使用一文中,我简要介绍了如何使用行级安全策略,最近因为工作需要对其又有了新的认识,故在此记录一下。本文主要介绍行级安全策略中用户权限和策略表达式(USING
和 CHECK
)。
最近在查看 PostgreSQL 数据库中内存分配相关的代码时,我发现 palloc()
和 palloc0()
函数存在大量的冗余代码。本着减少冗余代码的想法,我将修改后的代码提交到社区,得到的反馈是这样修改会影响整体效率。本文简要分析一下这是如何影响效率的。
Go 语言的 net/http
包为我们提供了一个 HTTP 客户端和服务器的实现,通过它我们可以快速的搭建一个 HTTP 服务器,本文记录一下在编写 HTTP 服务器时关于设置 HTTP 响应头遇到的一个小问题。
当我们在使用 PostgreSQL 数据库并启用 statement_timeout
时,可以看到 setitimer()
函数的调用次数明显偏多。本文分析了 Thomas Munro 给出的关于 setitimer()
函数的优化。
最近将博客由 NexT-v5.x 迁移到 NexT-v8.x 版本,这其中有很多东西已将发生变化了。本文简要介绍一下如何在新版中加入近期文章的功能。NexT-v8.x 版本将模版文件由原来的 swig
变更为 njk
后缀,因此,之前的近期文章的功能不再适用,我们需要稍作修改。
目前在 Greenplum、MySQL 数据库中均支持 backtrace 功能,现在 PostgreSQL 13-devel 版本中也新增了这个功能,我们可以在服务器日志中记录堆栈信息。
本文将对该功能进行简要介绍。
PostgreSQL 数据库中提供的某些系统表是 Cluster 级别共享的,他们在数据库内部被称为 shared_relation
,本文就介绍一下 PostgreSQL 是如何创建共享表的。
本文记载了如何在 MacOS 平台制作 U 盘安装镜像,这里主要使用到了 hdiutil,diskutil 和 dd 三个命令。