You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We only save who has given partition in meta for now, this works fine in normal cases. But during balance data, the part allocation will be modified once, for example, part 1 is on [A, B, C] and we want to replace A with D:
...
open part 1 on D
add D as learner
add D as peer
remove A from peer
modify meta from [ABC] to [BCD]
Actually, we need to handle the meta not only in last step, add learner/add peer/remove peer also need to handle it as well. What we need to do is that add a flag to indicate whether a host is learner or not.
Some places need to be modified, almost everywhere we use the part table in meta
create space: all part is not learner
balance data:
when we add learner, add D into the kv as learner
when we promote D as normal replica, modify D as normal one in kv
when we remove A from raft, modify the kv as well
start up process, since the meta table is modified, when starting up, we need to know my raft peers, some of then maybe learner, we need to use all data on meta.
The text was updated successfully, but these errors were encountered:
After talked with @pengweisong offline, we could use a simple method to address this issue. Save the peer info in storage local. This won't involve too much changes in meta.
We only save who has given partition in meta for now, this works fine in normal cases. But during balance data, the part allocation will be modified once, for example, part 1 is on [A, B, C] and we want to replace A with D:
Actually, we need to handle the meta not only in last step,
add learner/add peer/remove peer
also need to handle it as well. What we need to do is that add a flag to indicate whether a host is learner or not.Some places need to be modified, almost everywhere we use the part table in meta
The text was updated successfully, but these errors were encountered: