自己实现了下ReadIndex,但在TestSplitConfChangeSnapshotUnreliableRecoverConcurrentPartition3B这个测试中会导致只读请求报Request Time(跑了四五百次确认只有只读请求超时),概率大概是1/20的样子,看Log发现测试的Request中出现大量not_leader的问题,因为网络不稳定导致Leader经常退位。
自己分析原因是如果我只读请求通过Log同步,就算切换Leader我的Log还是有可能提交然后返回的,但是我做了ReadIndex以后切换Leader会让只读请求直接报错重发,导致了只读请求在不稳定的网络环境中一直在重发。
感觉可能是这个原因,如果是的话是不是不能做ReadIndex,或者请问大佬们有什么好的想法吗