Open zhengsunf opened 5 years ago
pipeline和batching都是解决节点之间高延时下的吞吐问题。 这里要看不同IDC之间的延时如何,在同城多IDC下,batching几乎可以达到高吞吐要求。 至于你的情况可能是异地多IDC, 由于phxpaxos不支持pipeline,唯一可以调整的就是batching参数(通过node.h的SetBatchCount和SetBatchDelayTimeMs),通过期望吞吐与节点间延时的关系,来调整。
增加pipeline后代码可理解性,维护成本都会大幅提高,这也算是一个权衡。
容灾有个很基本的要求,是副本不能都在一个机房。phxpaxos是严格串行,且不支持pipeline,我们部署三台机器,两台同IDC不同机架,一台不同IDC,只要同IDC的备机挂了,延时飙升,几乎不可用。这有可能进行改进吗?难道微信的备份都是在同一个IDC的??