Re: understand bootstrapping

2021-02-04 Thread Yifan Cai
The process is almost the same as bootstrapping. The leaving node state transits from NORMAL to LEAVING and finally to LEFT. It waits for the ring delay as part of each state transition in order to propagate the entire cluster. Pending ranges are updated. In the case of leaving, there will be

Re: understand bootstrapping

2021-02-04 Thread Han
Thank you Yifan for the details. I have a related question: when we issue a command to remove a node A from the ring, there could be a time that some node B thinks node A is removed, but some node C still thinks node A is in the ring and could reach node A. What happens if node C sends a write

Re: understand bootstrapping

2021-01-27 Thread Yifan Cai
Your thoughts regarding Gossip are correct. There could be a time that nodes in the cluster hold different views of the ring locally. In the case of bootstrapping, 1. The joining node updates its status to BOOT before streaming data and waits for a certain delay in order to populate the update in

Re: understand bootstrapping

2021-01-26 Thread Han
> > >> I'm particularly trying to understand the fault-tolerant part of updating >> Token Ring state on every node > > The new node only joins the ring (updates the rings state) when the data > streaming (bootstrapping) is successful. Otherwise, the existing ring > remains as is, the joining node

Re: understand bootstrapping

2021-01-25 Thread Yifan Cai
Hi Han, How / when do the existing nodes update their Token Ring state? The new joining node sets its tokens and populates to the cluster via gossip after completing data streaming. is that different between the seed node and non-seed node? Data streaming step is skipped if a node is seed.