Storaged wal异常问题求解

发现storaged的error日志文件中存在非常大量的类似如下的日志
E0724 19:06:28.524652 21379 FileBasedWalIterator.cpp:35] [Port: 44501, Space: 28, Part: 211] The given log id 1 is out of the range, the wal firstLogId is 19196837
请问这个异常是什么原因导致的?会造成什么影响?应该如何避免?谢谢

麻烦说下当时集群状态和使用场景? 这条日志后面就会触发raft的snapshot逻辑, 会从leader把状态机发给follower.

当时情况大致如下
1.我在大批量插入数据,测试导入性能,导入的时候会报 [Insert vertex not complete, completeness:58
类似这样的错误,然后我就调低了batch,继续导入,该错误消失。
2.继续导入的时候,通过观察grafana,发现有些个别机器没干活儿,通过show hosts发现Leader distribution不均衡,然后执行balance leader,执行后再观察Leader distribution已经均衡了
3.balance leader过程中并为停止导入数据,一直在持续大量导入数据
4.然后就发现了storaged的error日志里面有非常多的我问题中出现的日志,随着导入停止,错误日志也就停止了

hdd还是nvme? 你可以导入前先balance leader.

hdd 测试环境用的hdd 后续会在生产环境中使用ssd
所以是hdd的问题 或是 balance leader的问题?
balance leader 好像当时就返回成功了。。 所以我应该等多久才能继续load呢?~

hdd大量导入可能会出现这个问题, 把raft_heartbeat_interval_secs调长点比如30或者60看看有没有好转. balance leader完之后可以show hosts看下是否均衡

哦哦 好的!
如果方便的话 能否大致描述一下前因后果呢?学习一下,谢谢您~

rocksdb在hdd上写入延迟可能比较高, 由于心跳也是需要写入一条日志, 会导致心跳无法发出去, 然后show hosts就会看到负载不均衡, 如果这个过程再持续久一点, 可能就会出现snapshot等等逻辑.

2 个赞

明白了! 太感谢了!

你好,docker 这个参数需要怎么配置,写在环境变量里么

storage的conf文件