Availability Guide for Application Design

Availability Through Process-Pairs and Monitors
Availability Guide for Application Design525637-004
7-17
Comparing Active Backup With Passive Backup
Refer to the Guardian Procedure Calls Reference Manual for details on the Guardian
procedures listed in Tabl e 7-1.
Comparing Active Backup With Passive
Backup
The passive-backup model achieves fault tolerance by copying data from the primary
process, to the same address in the backup process. Conversely, the active-backup
model achieves fault tolerance by maintaining a logically identical process. In other
words, while the passive-backup model checkpoints data blocks and addresses to the
backup process, the active backup model sends data and directions on what to do with
it.
This basic difference gives active backup the following advantages over passive
backup:
For many types of applications, active backup is potentially more efficient,
especially when the active backup is maintained using nowaited checkpoints.
Active backup is more flexible and can be applied to a greater range of programs.
Passive backup has the following advantage:
Passive backup can be easier to code because it does much of the backup
processing for you in Guardian procedures such as FILE_OPEN_CHKPT_,
CHECKPOINT, CHECKPOINTX, CHECKPOINTMANY, CHECKPOINTMANYX,
and CHECKMONITOR.
These differences are explained in more detail in the paragraphs that follow.
Active Backup Is More Efficient Than Passive Backup
In the active backup model, only critical data values need be sent to the backup
process using interprocess communication. In the passive model, all data changes
must be checkpointed to the backup because the backup requires the same layout of
data memory as in the primary.
Active Backup Is More Flexible Than Passive Backup
The active backup model makes it possible for programs with hidden state information
to execute as a process pair.
Passive backup requires that an exact duplicate of the data memory of the primary
process be copied into the backup process. Passive backup is unable to checkpoint to
the backup process any data value that the main part of the application code cannot
access because the location or size is not available.
Many applications are written with this kind of hidden information. For example, many
C library routines hide information in this way. As a result, few applications that were