>
>
>> 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 remains in JOINING state, and it won't get
> any client traffic. If I understand the question correctly.
>

Thanks Yifan for your response.

The ring state update is propagated via gossip, so it is "eventually
consistent".  This means there is a time period when some existing node has
the new token ring but other existing nodes still have the old ring info,
right?  Is it true that other operations (e.g. replications) are still
going on between nodes, even when their local token rings info are not
consistent?

>From the new node point of view,  even when it is successful, at the end of
`StorageService::joinTokenRing`, it is possible that some existing nodes
have not updated their token ring yet, is this correct?

Thanks
Han



>
> Hopefully, the answers help.
>
> - Yifan
>
> On Sun, Jan 24, 2021 at 1:00 PM Han <keepsim...@gmail.com> wrote:
>
>> Hi,
>>
>> I wanted to understand how the bootstrapping (add a new node) works. My
>> understanding is that the first step is Token Allocation and the new node
>> will get a number of tokens.
>>
>> My question is:
>>
>> How / when do the existing nodes update their Token Ring state?  and is
>> that different between the seed node and non-seed node?
>>
>> I'm particularly trying to understand the fault-tolerant part of updating
>> Token Ring state on every node, but couldn't find relevant info by
>> searching.
>>
>> Any info or pointers are appreciated.
>>
>> Thanks!
>> Han
>>
>>

Reply via email to