Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
V
vsi-here
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 2
    • Issues 2
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 1
    • Merge Requests 1
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Package Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • dm
  • vsi-here
  • Wiki
  • 视频分析平台组件重启和重联机制

Last edited by Junqing Xie Apr 01, 2021
Page history

视频分析平台组件重启和重联机制

Task与EA映射表

在controller中,维护一张Task与分析引擎的映射表,表示一个正在运行的任务与运行该任务的EA。其关系为<taskId, engineId>。该表需在controller中持久化,建议在DB中以一张新表的方式进行存储。

Controller重启(对任务的操作)

Controller的操作

  1. 对task表中状态为NEW的任务,task管理模块继续将其分配到engine中运行;
  2. controller的engine管理模块,收到分析引擎的第一个update-engine-info的调用时,对映射表中隶属于该engine的每个task:
    • 调用task模块的restart接口,发送启动请求给分析引擎

分析引擎的操作

  1. 正常操作(在增加下面描述的机制的基础上)

分析引擎重启(对任务的操作)

Controller的操作

  1. controller的engine管理模块,收到分析引擎的第一个update-engine-info的调用时,对映射表中隶属于该engine的每个task:
    • 调用task模块的restart接口,发送启动请求给分析引擎

分析引擎的操作

  1. 正常操作(在增加下面描述的机制的基础上)

Controller新增接口和处理机制

  • 【机制】Controller的engine管理模块,收到stop-engine的调用时,对映射表中所有隶属于该engine的每个task:
    • 重新分配engine,并调用task模块的restart接口,
    • 从映射表中将该项删除
  • 【机制】Controller的engine管理模块,发现分析引擎失联时(连续3次没有收到心跳update-engine-info),对映射表中所有隶属于该engine的每个task:
    • 调用task模块的stop接口,向原分析引擎发送停止任务运行的请求
    • 重新分配engine,并调用task模块的restart接口,
    • 从映射表中将该项删除
  • 【机制】Controller的engine管理模块,在处理update-task-status接口的调用时,对映射表的<taskId, engineId>项进行维护:对于新的进入运行状态的任务,添加到映射表中;对于进入其它状态的任务,则从映射表中删除
  • 【接口】Controller提供查询特定分析引擎上所有运行任务的接口
  • 【接口】Controller对特定任务进行restart的接口

分析引擎新增的处理机制

  • 【机制】分析引擎对于接收到的新建任务的请求,如果对应taskId的任务正在运行,忽略该请求;否则,正常启动该任务
  • 【机制】分析引擎对于接收到的停止任务的请求,如果对应taskId的任务没有在运行,忽略该请求;否则,正常停止该任务
  • 【机制】分析引擎发现余Controller失联后(连续3次无法正常发送心跳update-engine-info),将所有运行的任务停止
Clone repository
  • Home
  • 视频分析平台组件重启和重联机制