Model Description

Consider a fault-tolerant database system which has a front end, a database, and two processing subsystems. Each processing subsystem contains a switch, a memory, and two processors. A processing subsystem is considered operational if the memory, the switch, and one of the two processors are operational. The entire system is operational if the database, the front-end, and at least one of the two processing subsystem is operational. We further assume that when a processor fails it contaminates (or fails) the database with probability (1-PROB), where PROB is the coverage probability. This model implements a simple repair policy . The database model presented in the next section model models a more complex repair policy.

There are four objects in the model:

Database Object
This object has one state variable that represents if the object is operational or is not. There are two events: a FAIL event with rate equal to FAILURE_RATE, and a REPAIR event, that repairs the object with rate equal to REPAIR_RATE. In the Messages attribute, the messages received are sent by the two subsystems (when they fail, with probability PROB, they contaminate the database object). In the Rewards attribute, a reward (named database_availability) is specified. It computes the fraction of time that the database is operational.
Front End Object
This object has the same behavior of the Database Object.
Subsystem Processor Objects
Each Subsystem Processor Object has three state variables:
Operational_Procs (that represents the total number of operational processors in the subsystem), Operational_Switch (that represents if the switch is operational or not) and Operational_Memory (if the memory is operational or not).

The Events attribute has events that represents the failure of the memory, of the switch and of the processors and events that repair them. When the processor fail, it contaminates a database model with probability 1-PROB.

The Rewards attribute has a reward that computes the fraction of time that the subsystem processor is operational.

The availability of the model is specified by a Global Reward (system-availability). This attribute has the same syntax as the Reward attribute.

IMPORTANT: The conditions can be evaluated based only on the rewards of the objects. The value assigned to a global reward can be a constant, or a reward defined for an object of the model. If, for example, the object has a state variable $S$, we cannot specify the condition
(condition= (object.S == 1)). But if the object has a reward named reward_R, we can specify the condition (condition = (object.reward_R == 1)). In the case of the value assigned, we can specify, for example,
value = object.reward_R_1 + object.reward_R_2.

The model is shown in Figure [*].

Figure: The Availability Model.
\includegraphics[width=6.5in]{figuras/confiabilidade.eps}

The System_1 object is shown in Figure [*].

Figure: The System_1 object (Availability Model).
\includegraphics[width=6.5in]{figuras/objectavailability.eps}

Guilherme Dutra Gonzaga Jaime 2010-10-27