The validation protocol requires that each transaction Ti
executes in two or three different phases in its lifetime,
depending on whether it is a read-only or an update
transaction. The phases are, in order:
– 1. Read phase.
• During this phase, the system executes transaction Ti . It reads the values
of the various data items and stores them in variables local to Ti . It
performs all write operations on temporary local variables, without updates
of the actual database.
– 2. Validation phase.
• The validation test is applied to transaction Ti . This determines whether Ti
is allowed to proceed to the write phase without causing a violation of
serializability. If a transaction fails the validation test, the system aborts the
transaction.
– 3. Write phase.
• If the validation test succeeds for transaction Ti , the temporary local
variables that hold the results of any write operations performed by Ti are
copied to the database. Read-only transactions omit this phase.