-
nebula 版本:2.6.2
-
部署方式:分布式
-
安装方式:源码编译 / Docker / RPM
-
问题的具体描述
-
相关的 meta / storage / graph info 日志信息(尽量使用文本形式方便检索)
我在探究一下nebula稳定性的时候 kill掉了某个存储节点 导致hd访问storage超时,存储层replicate log/append log 部分节点出现非常慢 300多ms
nebula 版本:2.6.2
部署方式:分布式
安装方式:源码编译 / Docker / RPM
问题的具体描述
相关的 meta / storage / graph info 日志信息(尽量使用文本形式方便检索)
我在探究一下nebula稳定性的时候 kill掉了某个存储节点 导致hd访问storage超时,存储层replicate log/append log 部分节点出现非常慢 300多ms
是比原来慢,还是说这个数据就是一个新数据,你觉得这个数值可以优化下?
就是一个写入的任务 在写入过程kill掉一个存储节点 过一会拉回来 这时候需要追数据 raft replicate log/append log慢
2.6的raft实现存在诸多问题,建议升级到最新版
咱们能不能给解释啥啥原因可能会导致这个问题
可以用perf看一下卡在了哪里。
目前一个猜测是:
假设,Peer{A,B,C},A是Leader,C故障一段时间后拉起。之后A要向BC去append log时,需要知道BC各自的最后一条log id。因为C落后很多,所以A要在wal里一条一条的找(这里是O(n)的)。找到之后才会给BC发送RPC请求。所以怀疑是慢在了找wal
对 我研究了一下 a b c三个副本 a是leader bc是follower 假设我将b kill掉2个小时 在拉回来 会出现append log会很慢 同时也会阻塞 每一轮rpc的发送 我这看a 发个b/c的request必须准备好 才能发送。而b因为diff很大 查log慢 导致整个rpc同步的很慢 是这个原因吗? 如果是 那么最新版本是如何解决的
此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。