Determining If Broker Quorum Exists

A broker quorum exists when a majority of the brokers in the domain are available. NuoDB requires a broker quorum to perform tasks such as adding a database process, removing a host from the domain or adding a host to the domain. Since these are tasks that you might need to perform to resolve a failure, it is important to know if a broker quorum exists. See About Broker Quorum for details about how broker quorum relates to the durable domain configuration.

To determine whether there is a broker quorum, invoke the NuoDB Manager show domain health command. This command provides information about the connectivity and durable membership of the domain. The broker that nuodbmgr connects to collates this information by connecting to each reachable broker and using each broker's view of the domain to diagnose membership or connectivity problems. Each reachable broker is checked for consistency with this broker and with each connected broker. NuoDB also checks for unreachable brokers that are in the membership list and for connected brokers that are not in the membership list. In the following example, Membership: OK indicates that there is a broker quorum:

nuodb [domain] >  show domain health
Membership: OK
Connectivity: OK
[123.4.5.6:48004] MAJORITY 3/3, UNTRACKED: 0
Process memory: 9.25%
Host memory: 60.70% WARN [ 1 > 10.00%, 1 > 15.00% ]
CPU: 35.17% WARN [ 1 > 20.00%, 1 > 50.00%, 1 > 70.00% ]

[SM] ip-172-31-34-74/54.88.137:60034 (us-east) [ pid = 25796 ] [ db = demo ] [ nodeId = 2 ] [ memUsed = 11.09% ] [ cpuUsed = 56.00% ]
[SM] ip-172-31-34-74/127.0.0.1:60025 (us-east) [ pid = 25795 ] [ db = demo ] [ nodeId = 1 ] [ memUsed = 18.33% ] [ cpuUsed = 26.00% ]
[TE] ip-172-31-34-74/127.0.0.1:60037 (us-east) [ pid = 25797 ] [ db = demo ] [ nodeId = 3 ] [ memUsed = 6.97% ] [ cpuUsed = 130.00% ]	

You can invoke the NuoDB Manager show domain summary command to obtain a list of the brokers in the domain. For each broker that is recorded in the durable domain configuration (and therefore listed in the domain summary), the command output indicates if the broker is CONNECTED or UNREACHABLE. A broker that is listed as connected is available to the other running brokers. A broker that is listed as unreachable is not available. A broker quorum exists only when a majority of brokers are available.

If a majority of brokers are available then the domain has a broker quorum. If only a minority of brokers are available then the domain does not have a broker quorum. In a domain that has an even number of brokers, if half the brokers are unreachable then the domain does not have a broker quorum. For example, consider a domain with two brokers. Both brokers must be available to have a broker quorum. With only one of two brokers available, consensus is not possible. In this situation, to perform the domain tasks that require a majority of brokers to be available, you must re-establish broker quorum. These tasks are listed in Re-establishing Broker Quorum.