NebulaGraph Kubernetes 上高可用的实现问题

  • nebula 版本:2.0
  • 部署方式:k8s
  • 是否为线上版本:Y
  • 问题的具体描述
    有三个 Storaged 服务的容器,分片数配置为15,副本数为3

在使用 importer 测试故障恢复和高可用时发现,如果在导入过程中随机重启某个 storaged 节点,会出现

ErrMsg: Storage Error: The leader has changed. Try again later, ErrCode: -8
ErrMsg: Storage Error: part: 8, error: E_RPC_FAILURE(-3)., ErrCode: -8

这样的报错,但是按照文档中的架构,写入或读取应该是不会出现失败的?

@Sajo 您好,删除后是需要等几个心跳的

@veezhang
在 pod 重建的过程中,这几个心跳时间中的读写都是会丢失吗?

建议可以加上一些重试机制

换句话说把心跳频率调高一些能加快恢复的速度对吧

理论上是如此,但是毕竟重启是小概率事件,如果心跳很快,会占用带宽,CPU等资源的

我把心跳时间调成了 1s
nebula-console 里面 storaged 的 status 开始 ONLINE/OFFLINE 不过容器也没报错,导入也正常,import 过程中重启也不报错误了 :joy:
就是导入速度拉了,不到原来的一半

是一直是导入很慢? 还是恢复后,导入也跟之前类似?

一直导入很慢,应该是心跳频率高的开销问题

嗯嗯,有可能, 有没有尝试重设间隔到默认值来测试下?

该主题在最后一个回复创建后7天后自动关闭。不再允许新的回复。