引擎调度单元
EDU 可以分为用户 EDU 和系统 EDU,分别代表执行用户任务的线程和执行系统任务的线程。EDU 的管理由 EDU 管理器完成,包括 EDU 的创建、监控、相互通讯及销毁等操作。
系统 EDU 为系统内部维护数据结构及一致性的线程,一般来说对用户完全透明。 在 SequoiaDB 中,存在但不局限于下列系统 EDU:
名称 | 类型 | 描述 |
---|---|---|
TCPListener | 服务监听 | 该线程负责监听 svcname 服务,并启动 Agent 代理线程 |
HTTPListener | HTTP 监听 | 该线程负责监听 httpname 服务,并启动 Agent 代理线程 |
Cluster | 集群管理 | 集群管理线程用于维护集群的基本框架,启动 ReplReader 与 ShardReader 线程 |
ReplReader | 复制监听 | 复制监听线程负责由 replname 服务传入的请求,并启动 ReplAgent 代理线程 |
ShardReader | 分区监听 | 分区监听线程负责由 shardname 服务传入的请求,并启动 ShardAgent 代理线程 |
LogWriter | 日志写 | 日志写线程用于将日志缓冲区中的数据写入日志文件 |
WindowsListener | Windows 事件监听 | Windows 环境特有,用于监听 Windows 中 SequoiaDB 定义事件 |
Task | 后台任务处理 | 后台任务处理线程,一般来说用于处理后台任务请求,例如:数据切分 |
CatalogManager | 编目控制 | 编目控制线程用于处理编目节点内部元数据相关的请求 |
CatalogNetwork | 编目网络监听 | 编目网络监听线程用于监听编目服务 catalogname 下的请求 |
CoordNetwork | 协调网络监听 | 协调网络监听线程用于监听分区的请求 |
为了方便监控,每个 EDU 都存在一个当前状态,这些状态包括:
- Running:运行状态,EDU 被激活且进入任务的正式处理流程中,处于该状态
- Waiting:等待状态,运行阶段完成后,进入该状态
- Destroying:销毁状态,EDU 正在被销毁
用户可以使用会话快照监控系统与用户 EDU。