云数据库 GaussDB-DBE_TASK:约束说明

时间:2023-11-01 16:22:24

约束说明

  1. 使用summit/id_submit创建一个新job后,该job从属于当前coordinator(即:该job仅在当前coordinator上调度和执行),其他coordinator不会调度和执行该job,如果出现coordinator节点故障,无法保证job正常执行。建议使用PKG_SERVICE.SUBMIT_ON_NODES接口,将job执行节点指定为CCN,以保证节点故障时job仍然可用。不是所有coordinator都可以查看、修改、删除其他CN创建的job。
  2. job只能通过dbe_task高级包提供的接口进行创建、更新、删除操作,因为高级包的接口中会考虑所有CN间job信息的同步和pg_job与pg_job_proc表主键的关联操作,如果通过DML语句对pg_job表进行增删改,会导致job信息在CN间不一致和系统表无法关联变更的混乱问题,会严重影响job内部的管理。
  3. 由于用户创建的每个任务和CN绑定,当任务运行过程中,该CN故障,则该任务的状态无法实时刷新,仍为’r’状态,需要等CN启动正常后才能刷新为’s’状态。如果在任务未执行时CN故障,则该CN上的任务都得不到正常的调度和执行,需要人为干预让该CN恢复正常,或进行节点删除/替换、job才能正常的调度和执行。
  4. job在定时执行过程中,需要在当前job所属的CN上实时更新该job的运行状态、最近执行开始时间、最近执行结束时间、下次开始时间、失败次数(如果job执行失败)等相关参数信息到pg_job系统表中,并同步到其他CN,保证job信息的一致性。如果其他CN存在节点故障,那么job所属CN会同步超时重发的处理,导致job执行时间变长,但CN间同步超时失败后,原CN上pg_job表中job的相关信息仍然能正常更新,且job能正常执行成功。当故障CN恢复正常后,可能出现该CN上pg_job表中当前job的执行时间、运行状态等参数与原CN上不一致的情况,需要原CN上再次执行该job后才能保证job信息的同步。
  5. 对于并发同时有多个job到达执行时间的场景,由于会为每个job创建一个线程来执行job,由于系统内部启动每个线程的时间会有延迟,因此会导致同时并发执行的job的开始时间有延迟,每个job的延迟时间在0.1ms左右。
support.huaweicloud.com/devg-opengauss/opengauss_devg_0712.html