学习
实践
活动
专区
工具
TVP
写文章

openGauss备机追数Catchup过程中主库写入阻塞问题

最近在测试openGauss主从复制时发现一个问题:当备机落后主机很多时(比如停了一段时间后再启动),启动后会自动的追数,追数的过程状态是catchup,而在catchup的过程中,主库上的写入会全部阻塞 ,当然经过进一步验证,如果存在其他正常的备库(状态是normal),那么其中一个备库catchup不会阻塞主库。 状态变为normal时tps才恢复正常 启动第二个备库: [omm@db03 ~]$ gs_ctl start -M standby 观察状态,虽然sync_percent没有完全同步完,状态是catchup PINGOK只能代表主备的连通性正常,不代表备机可以立刻提供服务,所以catchup这段时间不能认为该备机是一个正常的备机,除非当时有其他normal状态的备机。 那么如果第一个备机已经完成catchup,第二个备机再启动然后catchup追日志为什么不阻塞呢?

52920
  • 广告
    关闭

    2023新春采购节

    领8888元新春采购礼包,抢爆款2核2G云服务器95元/年起,个人开发者加享折上折

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    大数据调度平台Airflow(五):Airflow使用

    图片图片三、DAG catchup 参数设置在Airflow的工作计划中,一个重要的概念就是catchup(追赶),在实现DAG具体逻辑后,如果将catchup设置为True(默认就为True),Airflow 将“回填”所有过去的DAG run,如果将catchup设置为False,Airflow将从最新的DAG run时刻前一时刻开始执行 DAG run,忽略之前所有的记录。 如果catchup 设置为False,那么DAG将从2021-10-01 15:22:20(当前2021-10-01 15:23:21前一时刻)开始执行DAG run。 :全局配置在airflow配置文件airflow.cfg的scheduler部分下,设置catchup_by_default=True(默认)或False,这个设置是全局性的设置。 DAG文件配置在python代码配置中设置DAG对象的参数:dag.catchup=True或False。

    2.4K42

    有赞大数据平台的调度系统演进

    调度自动回补策略(Catchup机制) 调度自动回补机制是DP实际生产环境中的一个核心能力,其使用场景是当调度系统异常或者资源不足时,可能会导致部分任务错过当前调度触发时间,当恢复调度后,通过Airflow 的Catchup机制会自动补齐未被触发的调度执行计划。 对于Catchup机制原理可以看一下下图示例: 图1:是一个小时级工作流的调度执行信息,这个工作流在6点准时调起,并完成任务执行,当前状态也是正常调度。 图3:当9点恢复调度后,因为catchup机制,调度系统会自动回补之前丢失的执行计划,也就是实现调度的自动回补。 Catchup机制在Dag数量较大的时候有比较显著的作用,当因为Scheduler节点异常或者核心任务堆积导致工作流错过调度触发时间时,不需要人工去手动补数重跑,系统本身的容错机制就支持自动回补未被调起的任务

    1.1K20

    MongoDB一致性模型设计与实现

    中会包含自己最新的 applied opTime,当选节点会把其中最大的 opTIme 作为自己 catchup 的 targetOpTime; 从 applied opTime 最大的节点或其下游节点同步数据 target optime to " << *targetOpTime; ... } 上述第 5 步意味着,catchup 过程中如果有超时发生,其他节点仍然需要回滚,所以在 3.6 版本中, 但为了避免 catchup phase 无限进行,影响可用性(集群不可写),增加了 catchup takeover 机制,即集群当前正在被当选节点作为同步源 catchup 的节点,在等待一定的时间后 case HeartbeatResponseAction::CatchupTakeover: { // Don't schedule a catchup takeover if Data Rollback 是无法彻底避免的,因为 catchup phase 也只能发生在拥有最新 log entry 的节点在线的情况下,即能够向当选节点恢复心跳包,如果在选举完成后,节点才重新加入集群

    1K51

    扫码关注腾讯云开发者

    领取腾讯云代金券