Maintaining Admin Process Quorum

In a multi-site configuration, where the number of admin processes configured is the same for each site, a complete site outage could result in a loss of admin process quorum. In this scenario, it is typical to set up a third arbitrating site that hosts a tiebreaker admin process (or typically processes) to ensure the surviving production site remains in a majority. However, it is common that you would not want Transaction Engines (TEs) on the arbitrating admin processes to service your production SQL applications. For this reason you can blacklist those TEs to remove them from candidacy, that is, blacklist those TEs from being selected to service a SQL application.

Blacklisting TEs is supported via the use of assigning database process labels.

1. First, set a transaction engine label such as blacklist.

nuocmd start process --engine-type TE --labels te blacklist

2. Create an LB Policy that filters and excludes the transaction engines with the blacklist label.

nuocmd set load-balancer --policy-name exclude-blacklist --lb-query LBQuery=random(not(label(te blacklist)))

3. At database connection time, use the LB Policy connection property to set a policy that excludes the transaction engine blacklist label.

nuosql test@nuoadmin1 --user dba --password goalie --connection-property LBPolicy=exclude-blacklist