PG 一个用户连接的后端进程 crash,其它后端进程也退出

​​​​​​(99+ 封私信 / 9 条消息) 为什么 PostgreSQL 要使用多进程这么落后的并发模型而不是多线程呢? - 知乎 (zhihu.com)

经过实验,PostgreSQL有多个用户连接时, 当有一个用户的后台进程CRASH,一般段错误之类的原因退出时,其它用户的后台进程也会退出,这是postmaster通知它们这么做的。

但是,此时其它后台进程,例如postmaster,walwriter,logical replication launcher等等不会退出,这一做是为了保证用户读写数据库的一致性。

从这个角度看PG的多进程模型,的隔离程度并不是那么高,但是相对于线程,还是有一定隔离性的,例如,虽然用户连接后台进程都退出了,但是其它后台进程没有退出,用户重新连接即可,而线程模型,整个数据库服务器端都退出了,所有服务不可用,用户无法重新连接。

另外PG如果用户后端进程正常退出,例如用kill或pg_terminate_backend(),则不会导致其它用户的后端退出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值