Vital Servers: The -mustuse command tail

From version 4.523 a previously undocumented command tail −mustuse n is reintroduced and officially supported. This command tail was available prior to version 4.521 but never documented. It was removed from that version as it was believed it was never used, but in fact some systems rely on it.

The −mustuse n command tail is similar to −use n - it adds the specified server to the list of servers used by tables following the default layout, but it affects the operation of commit()/checkpoint(): servers specified with −mustuse are considered to be "vital". If any update in a database transaction tries to update a "vital" server that is offline, then the following commit() will definitely fail (with COMMS_FAILURE), unless there are no servers at all online, and the -NOFAIL mode of operation is in use (See Network Error Handling). Note that transactions that do not update such a server may succeed even when the server is offline. Typically a system will only specify at most one "vital" server. This will function as a "master" machine to which all database updates must be sent.

Applications can use the vital_machines field in the network layout table to get or set the list of vital servers