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
The MAAS and Juju teams have both run into trouble when operating two-node dqlite clusters. In both cases there's a desire for go-dqlite's automatic role management to support maintaining both nodes as voters in this situation; right now this is not possible due to the code here:
// If the cluster is too small, make sure we have just one voter (us).
ifc.size() <minVoters {
fornode:=rangec.State {
ifnode.ID==leader||node.Role!=client.Voter {
continue
}
returnclient.Spare, []client.NodeInfo{node}
}
return-1, nil
}
You can't set the voter target to an even number. If you set it to 1 then the problem is obvious, and if you set it to 3 then this code still leads to having only one voter in a two-node cluster. We should fix this situation so that two-node clusters with two voters are viable with go-dqlite.
The text was updated successfully, but these errors were encountered:
The MAAS and Juju teams have both run into trouble when operating two-node dqlite clusters. In both cases there's a desire for go-dqlite's automatic role management to support maintaining both nodes as voters in this situation; right now this is not possible due to the code here:
go-dqlite/app/roles.go
Lines 134 to 143 in 1940345
You can't set the voter target to an even number. If you set it to 1 then the problem is obvious, and if you set it to 3 then this code still leads to having only one voter in a two-node cluster. We should fix this situation so that two-node clusters with two voters are viable with go-dqlite.
The text was updated successfully, but these errors were encountered: