Raft Group in DGraph

Hi all,

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?

Thanks!

You can find about Raft here https://docs.dgraph.io/design-concepts/#raft

There’s a interactive visualization.

In the source code, only using Github search. https://github.com/dgraph-io/dgraph/search?q=raft&unscoped_q=raft

Sorry, let me clarify a little bit.

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.