jackjoesh
jackjoesh
> Hi thanks for your interests. This step wait for two things, one is leader on stage and the second is applying the the lasted log. > > * The...
> Our state machine takes advantage of rocksdb. EAL only write rocksdb, and CPL read from memory cache and same shared rockdb. You can image rocksdb state is the latested...
thank you. I get it
> In practice, there is no extra EAL event to apply, since EAL should catch up with commited index. Yes we have PROD system using are using gringofts, that's why...
> What do you mean by that? Can you give me an example of what you want Kryo to do? @BigDecimalCut(accuracy=8, roundHalfUp=true) private BigDecimal value; Attributes can be annotated to...
> What do you mean by that? Can you give me an example of what you want Kryo to do? Sorry, I changed the question, can I get the custom...
> > can I get the custom annotation on the field in my custom serializer? I hope some properties in these annotations will affect the serialization rules. > > Unfortunately,...
> 实际遇到问题了? 业务状态机满,理论上并不影响心跳。 是的,我理解follower在接受heartbeat请求的处理链路如下: NodeImpl的1972行 this.ballotBox.setLastCommittedIndex(Math.min(request.getCommittedIndex(), prevLogIndex)); BallotBox第241行 this.waiter.onCommitted(lastCommittedIndex); FSMCallerImpl第239行 public boolean onCommitted(final long committedIndex) { return enqueueTask((task, sequence) -> { task.type = TaskType.COMMITTED; task.committedIndex = committedIndex; }); } 最后的这个业务状态机队列ApplyTask是阻塞式的队列,那会造成follower处理heartbeat请求超时,...
> 实际遇到问题了? 业务状态机满,理论上并不影响心跳。 我们follow在启动的时候,如果要追的业务状态机数据很多,把队列打满了,就会很快造成follower onStopFollowing
> 嗯,你说的现象是可能存在的,这块我们再思考下。心跳会捎带 commit index 来提交日志到状态机,如果状态机长期跟不上 leader 进度也会有问题。 我明白你的意思,如果状态机器长期跟不上,那个follower也是有问题的。但是最好在follower刚启动的时候,给他一定的容错时间,如果我们用raft做一些比较重的业务的时候,启动时可能就会存在追比较久的情况