跳转至

启用executor镜像

启用executor镜像

启动executor镜像功能后,当主executor故障不可用时,系统可以将业务请求转移到镜像executor上。为了更好地发挥镜像executor的作用,SeaboxMPP数据库系统需要有足够的主机以保证镜像executor和对应的主executor不在同一台主机上。默认情况下,会对SeaboxMPP数据库系统集群内的主机进行分组,在组内将镜像executor打散部署在组内的主机上。

以下是启用镜像executor配置方法:

  • 配置文件中 executor 配置

executor 配置图

  • executor 在配置文件中可以有多个 host,每个 host 上可以安装多个 executor,而且每个 primary executor 和 mirror executor 的 content 必须相同

  • 为了确保在 host 发生故障时,其他的 host 上负载相对均衡,还需要将 host 进行分组,在每个组内 mirror executor 进行 spread 部署。默认 node_group_host_count 为 3,不同 host 的组合都可以进行部署,最理想的情况是,node_group_host_count 为 executor_count_each_host 加 1。以每台 host 上3个 primary executor 为例,介绍 mirror executor 的分布情况:

  • 2 个 host 为一组时,mirror executor 的分布情况 2hosts

  • 3 个 host 为一组时,mirror executor 的分布情况

    3hosts

  • 4 个 host 为一组时,mirror executor 的分布情况

    4hosts

  • 校验 node_group,每个 group 内不能有重复的 host,多个 group 之间也不能有重复的 host

生成的 primary executor 配置如下所示:

{
"reg_order":"3", 
"dbid":"4",
"content":"1",
"role":"p",
"preferred_role":"p",
"mode":"s",
"status":"u",
"port":"3800",
"hostname":"node1",
"address":"node1",
"preferred_hostname":"node1",
"datadir":"/home/seabox/seabox-data-directory/executor/primary/1"
}

生成的 mirror executor 配置如下所示:

{
"reg_order":"6", 
"dbid":"7",
"content":"1",
"role":"m",
"preferred_role":"m",
"mode":"s",
"status":"u",
"port":"3802",
"hostname":"node1",
"address":"node1",
"preferred_hostname":"node1",
"datadir":"/home/seabox/seabox-data-directory/executor/mirror/1"
}