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

PostgreSQL来自欧罗巴Patroni系列技术主题五

(本文阅读预计时间:5分钟)

Patroni系列已经写到第五期了,首先先说为什么要有watchdog,如图,如果我们的系统在运行是出现问题,节点PG1失效了,无论是网络的问题,还是主机本身的问题,此时都是要进行重新选举,问题就产生在3开始选举leader。

上期说配置文件的时候

  • loop_wait: the number of seconds the loop will sleep. Default value: 10
  • ttl: the TTL to acquire the leader lock (in seconds). Think of it as the length of time before initiation of the automatic failover process. Default value: 30
  • retry_timeout: timeout for DCS and PostgreSQL operation retries (in seconds). DCS or network issues shorter than this will not cause Patroni to demote the leader. Default value: 10

还得祭出这三条:

  1. loop_wait
  2. ttl
  3. retry_timeout

已默认值来说一个节点的切换10+30+10是最大的时间,但实际上会有另一个问题。在选举中,此时所有节点包含失效的节点都会出现一个问题:此时没有节点是leader,数据写入的需求是怎么处理的问题。

未了避免脑裂,Patroni需要确认postgresql不能在leader键值在DCS过期后继续接受事务的commit,在patroni无法进行leader lock后,则patroni将开始试图停止postgresql的方式来保证此期间不会有脑裂的问题。

watchdog的主要产生的原因是,如果patroni无法在此刻关闭postgresql怎么办?因为patroni也不是"孙悟空",也是人肉一枚,如果由于各种原因导致patroni本身无法工作,watchdog将尝试重新启动系统。如果工作后,无论怎样patroni还是无法正常工作,则watchdog模式如果设置成required,则这个所在的问题节点是不能成为leader的。当整体选举leader成功后,patroni将会让watchdog进入休眠的状态。

但在设计watchdog时会有一个问题,因为设计时差的问题,导致watchdog本身无法获得patroni发送的信息。最终在这个工作周期无法激活watchdog。这个时间的设定较safety margin官方给出的建议并不明确。只提到了watchdog timeout调整到ttl的一半时间,确保watchdog能受到信息,从对loop_wait和retry_timeout入手。

默认使用patroni的数据库机器需要执行

modprobe softdog

chown postgres/dev/watchdog

这里大部分使用的是Linux本身的watchdog

关于watchdog有三个设置

watchdog:

mode:Allowed values:off,automatic,required

mode的值有三个 

1.off不运行watchdog。

2.automatic根据设置的情况,默认使用watchdog,但如果配置出现问题、watchdog出现问题则不使用watchdog。

3.required必须使用watchdog否则无法选择leader。

device:/dev/watchdog

4.watchdog设备本身

safety_margin:

5.看门狗触发和主控键过期之间的安全余量秒数。

PostgresConf.CN & PGConf.Asia2020大会预告
PG ACE计划的正式发布
三期PostgreSQL国际线上沙龙活动的举办
六期PostgreSQL国内线上沙龙活动的举办
PGCM高级认证培训的正式开启

PostgreSQL 13.0 正式版发布通告

深度报告:开源协议那些事儿

从“非主流”到“潮流”,开源早已值得拥有

Oracle中国正在进行新一轮裁员,传 N+6 补偿

PostgreSQL与MySQL版权比较

PostgreSQL与Oracle:成本、易用性和功能上的差异

使用ora2pg完成从Oracle到Postgres的迁移

PostgreSQL活动篇

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

评论