Unsupported content This version of the documentation is no longer supported. However, the documentation is available for your convenience. You will not be able to leave comments.

Quorum algorithm examples


The CLUSTER option for Status Computation uses the QUORUM impact function, which is described as follows:

When you create a quorum type of StatusModel, you can specify a percentage, called the quorum percentage. The quorum value is given by the quorum slot of the BMC_STATUS_COMPUTATION instance.

The impact_status is the highest propagated_status that a quorum percentage of provider agrees on.

An easy computation of the quorum status can be performed as follows:

  • There are n providers with propagated_status different from NONE: let i be the lowest integer that is greater than or equal to quorum* n /100.
  • Consider the array of propagated_status ordered from highest to lowest status.
  • The impact_status is the status corresponding to the element i of this array.
Example

CASE A website 1 (quorum-based component status computation)
host1
host2
Example A1

QUORUM=50, host1=OK, host2=IMPACTED

50*2/100 = 1 => i = 1
array = [IMPACTED, OK]
The percentage of hosts that are not AVAILABLE is 50%, which breaches the quorum threshold, so the status of website 1 is IMPACTED.
Example A2

QUORUM=51, host1=OK, host2=IMPACTED 

1 < 51*2/100 < 2 => q = 2
array = [IMPACTED, OK]
The percentage of hosts that are not OK is 50%, which does not breach the quorum threshold, so the status of website 1 is OK.
Example A3

QUORUM=51, host1=MINOR, host2=IMPACTED

1 < 51*2/100 < 2 => q=2
array = [IMPACTED, MINOR]
There is indeed at least 51% of the providers (actually 100%) that state a severity at least MINOR, so the status of website 1 = MINOR
CASE B website 2 (quorum-driven, impact-based component status computation)
host1
host2
host3
host4
Example B1

quorum_percent=30, host1=OK, host2=OK, host3=OK, host4=Minor

1<30*4/100<2=>q=2
array = [MINOR, OK, OK, OK]
The percent of hosts that are not UNAVAILABLE is 25%, which is less than 30%, so the status of website2 is OK.
Example B2

quorum_percent=30, host1=OK, host2=OK, host3=UNAVAILABLE, host4=MINOR

1 < 30*4/100 < 2 => q = 2
array = [UNAVAILABLE, MINOR, OK, OK]
There is at least 30% (actually 50%) of the providers that state a severity of at least MINOR, so the status of website 2 is MINOR.
Example B3

quorum_percent=60, host1=MINOR, host2=OK, host3=UNAVAILABLE, host4=UNAVAILABLE

2 < 60*4/100 < 3 => q=3
array = [UNAVAILABLE, UNAVAILABLE, MINOR, OK]
There is at least 60% (actually 75%) of the providers that state a severity at least MINOR, so the status of website 2 = MINOR

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*