I’m reading DGraph documents and source code recently. The document mentions that there is one raft group for each data group (the group for several tablets). I think, just like CockroachDB, the reason of having multiple raft groups is that we want to restrict the number of members in one group. However, I can’t find how DGraph does this in the source code. Could you give me some guidance?
In https://docs.dgraph.io/design-concepts/#consistency-models, it says each group is a raft group. My understanding is only the alpha server which serves that group is a member of the corresponding raft group. However, in the source code, when starting raft, it seems all alpha servers join the same raft cluster.
I checked the source code again and realized that I misunderstood the etcd raft API. The code works as I expected. When the zero server responds to alpha nodes, the response includes the peers of the raft group. And it is empty when the alpha node joins a new group.