validation phase: check to see if writes made by the transaction violate the consistency of the database. If the check finds out any conflicts, the data in the temporary storage will be discarded. Otherwise, the write phase will write the data into the database.
The validation process can be described as:
T: a transaction
ts: the highest sequence number at the start of T
tf: the highest sequence number at the beginning
of its validation phase
valid:=true;
for t:=ts+1 to tf do
if (writeset(t) & readset[T] != {} ) then
valid :=false;
if valid then {write phase; increment counter, assign T a sequence number}