PostgreSQL-BDR:部分节点在网络出现问题2小时后才开始复制

PostgreSQL-BDR: Some of the nodes starts to replicate only after 2 hours after network problems

我的设置是在 4 台配置相同的服务器上使用 PostgreSQL-BDR。

在网络出现问题(例如连接断开几分钟)后,一些节点会在几秒后再次开始复制,但其他节点在 2 小时后才开始复制。

我找不到任何配置开关来设置复制的时间。

我在监视复制槽时看到以下几行:

slot_name | database | active | retained_bytes

bdr_16385_6255603470654648304_1_16385__ | mvcn     | t      |             56
bdr_16385_6255603530602290326_1_16385__ | mvcn     | f      |          17640
bdr_16385_6255603501002479656_1_16385__ | mvcn     | f      |          17640

知道为什么会这样吗?

问题是默认的 tcp_keepalive_time 是 7200 秒,正好是 2 小时,所以更改 /proc/sys/net/ipv4/tcp_keepalive_time 的值解决了这个问题。