Determining If Admin Process Quorum Exists

As discussed in About Admin Process Quorum, a majority of the admin servers in the domain must have running admin processes available to the other running admin processes to make changes to the durable domain configuration. Since these are tasks that you might need to perform to resolve a failure, it is important to know if admin process quorum exists.

The show domain command displays the state of the domain and database as seen by the admin process you are running the command against.

Note: show domain is run using NuoDB Command (nuocmd). For more information on NuoDB Command and other command line tools, see Command Line Tools.

Since network disruptions could affect different processes in different manners the output from the command may be different depending on which admin process you are connected to. In the example below admin processes r0db2, r0db3 and r0db4 are disconnected from r0db0 and r0db1. In addition, there is no leader identified in the connected nodes. Since only two of the five members of the domain are connected and there is no leader established, there is not an admin process quorum that includes host r0db0 and r0db1.

nuocmd show domain
...
Servers:
  [r0db0] 172.31.45.7:48005 [last_ack = 9.32] [member = ADDED]  [raft_state = ACTIVE] (FOLLOWER, Leader=<NO VALUE>, log=5/99/100)  Connected *
  [r0db1] 172.31.44.101:48005 [last_ack = 9.32] [member = ADDED]  [raft_state = ACTIVE] (FOLLOWER, Leader=<NO VALUE>, log=5/99/100)  Connected
  [r0db2] 172.31.42.100:48005 [last_ack = 119.32] [member = ADDED]  [raft_state = ACTIVE] (FOLLOWER, Leader=r0db4, log=5/98/98)  Disconnected
  [r0db3] 172.31.47.31:48005 [last_ack = 59.32] [member = ADDED]  [raft_state = ACTIVE] (FOLLOWER, Leader=r0db4, log=5/98/98)  Disconnected
  [r0db4] 172.31.47.176:48005 [last_ack = 29.32] [member = ADDED]  [raft_state = ACTIVE] (LEADER, Leader=r0db4, log=5/99/99)  Disconnected

Note: Even if a set of admin processes have agreed upon an elected leader this does not mean that quorum is established. In the example below the six admin processes identified by server IDs r1db0, r1db1, r1db2, r1db3, r1db4 and r1db5 are all connected and agree that r1db1 is the leader. However since the six admin processes do not represent a majority of the 12 admin servers in the domain they do not form an admin process quorum.

...
Servers:
  [r0db0] 172.31.40.33:48005 [last_ack = 1239.537] [member = ADDED] [raft_state = ACTIVE] (LEADER, Leader=r0db0, log=5/215/215) Disconnected
  [r0db1] 172.31.33.174:48005 [last_ack = 1229.537] [member = ADDED] [raft_state = ACTIVE] (FOLLOWER, Leader=r0db0, log=5/215/215) Disconnected
  [r0db2] 172.31.34.204:48005 [last_ack = 1219.537] [member = ADDED] [raft_state = ACTIVE] (FOLLOWER, Leader=None, log=6/216/216) Disconnected
  [r0db3] 172.31.47.96:48005 [last_ack = 1219.537] [member = ADDED] [raft_state = ACTIVE] (FOLLOWER, Leader=None, log=6/216/216) Disconnected
  [r0db4] 172.31.42.146:48005 [last_ack = 1209.536] [member = ADDED] [raft_state = ACTIVE] (LEADER, Leader=r0db4, log=8/217/217) Disconnected
  [r0db5] 172.31.33.106:48005 [last_ack = 1209.537] [member = ADDED] [raft_state = ACTIVE] (FOLLOWER, Leader=r0db4, log=8/217/217) Disconnected
  [r1db0] 172.31.26.105:48005 [last_ack = 53.430] [member = ADDED] [raft_state = ACTIVE] (FOLLOWER, Leader=r1db1, log=9/218/224) Connected *
  [r1db1] 172.31.28.109:48005 [last_ack = 53.429] [member = ADDED] [raft_state = ACTIVE] (LEADER, Leader=r1db1, log=9/218/224) Connected
  [r1db2] 172.31.19.203:48005 [last_ack = 53.431] [member = ADDED] [raft_state = ACTIVE] (FOLLOWER, Leader=r1db1, log=9/218/224) Connected
  [r1db3] 172.31.24.211:48005 [last_ack = 53.431] [member = ADDED] [raft_state = ACTIVE] (FOLLOWER, Leader=r1db1, log=9/218/224) Connected
  [r1db4] 172.31.17.17:48005 [last_ack = 63.927] [member = ADDED] [raft_state = ACTIVE] (FOLLOWER, Leader=r1db1, log=9/218/224) Connected
  [r1db5] 172.31.19.127:48005 [last_ack = 63.926] [member = ADDED] [raft_state = ACTIVE] (FOLLOWER, Leader=r1db1, log=9/218/224) Connected