wayen

Results 15 comments of wayen

as I test on the snapshot with archive mode on nvme disk without ZFS, the block will not fall behind too much red line is erigon and second is bsc...

@AndreaLanfranchi ,**compare this two height which is at same moment, erigon fall behind for 14 blocks** , cycle time shows that the performance seems ok , I guess promethus monitor...

we can also use mdbx_dump/mdbx_load tools to convert the data into 8k or 16k

(1)开始选主之前的延迟是因为 需要一半以上的master 对fail节点进行标记,标记完成后统计达到一半以上发广播,和从一种重连7秒应该没有关系 (2)data age to large这里触发是因为你的time out时间太小,因此主从之间上次通信的时间有个最大值的限制,他是根据timeout时间计算的,这里看日志通信时间超过了2秒限制。

上次主从通信的时间psynctime是由主从同步模块来记录的,从节点选举需要满足下面这个条件 now() - psynctime > 10*cluster-node-timeout + 1 不满足的话就不能选举为主

旧的从这里重启 可以变主是一个bug (刚拉起psynctime有个初始化值), 这里应该不可用变主,因为它数据是不对的,我们正在修复

1秒通信一次,不需要你配置,cluster-node-timeou时间太小不合适,导致data_age这里满足不了条件,或者你可以修改一下这个cluster-slave-validity-factor 改成小于10的值(比如5), 这样data_age就不容易触发

是这个条件,意思是psynctime必须要最近时间点的,fator是改大 , 后面这块逻辑会优化下, 只要不是timeout时间太小导致误判 其它负面影响应该不大

探测到master  fail后, slave 会延迟下面一段时间发起选举: 500 + random()%500 + rank*1000  单位是毫秒, 目的是为了在多个slave的情况下能够保证rank最低的当选为 master 这里我们默认还没提供参数配置来调整延迟时间,在一主一从的情况下 这个延迟其实是可以去掉的

如果一个master 只有一个slave , cluster_manager.cpp 里面这行代码你可以按照自己的需求改下,改小一点 ,改成0应该也没问题 auto delayTime = msSinceEpoch() + 500 + /* Fixed delay of 500 milliseconds, let FAIL msg propagate. */ redis_port::random() % 500;