RDF System Management Manual

Table Of Contents
Network Transactions
HP NonStop RDF System Management Manual524388-003
13-11
The Effects of Undoing Network Transactions
Assume that the primary system \B goes down after having transmitted the commit
record for T
13
to its backup system \Y. At that point \Y has the commits for T
10,
T
13,
T
20
, T
21
, T
22
and T
36
. \Y only has to perform local undo (during which T
12
is undone).
The purger on \X (the network master) determines that the first transaction requiring
network undo is T
12
because that transaction was active on both \A and \B when \B
went down. Therefore, even though T
12
originated on \A and was committed on \A, it
must be undone on \X (the backup system of \A) because it was undone on \Y (the
backup system of \B). This ensures database consistency across both nodes. Note
that when the purger identifies the first network transaction that must be undone during
network undo processing, it logs an RDF 877 event message specifying that
transaction.
Besides transaction T
12
, transactions T
14
and T
15
must also be undone on \X because
they followed the commit of T
12
on \A and their database changes could have been
based on the committed outcome of T
12
. If T
14
and T
15
are not also undone, database
consistency could be compromised because their effects on the database might have
been based upon data that was backed out. Note that T
14
is a local transaction, not a
network transaction. Nonetheless, its database changes could have been based on
the outcome of T
12
and therefore must be undone. Thus, both network and business
consistency are maintained.
T
13
does not, however, have to be undone even though it committed on \A after T
12
.
Why? Because the purger on \X (the network master) determines that, although T
13
followed T
12
on \A, the sequence for these two commits had to have been reversed on
\B, where the commit for T
13
preceded the commit for T
12
. Therefore, the purger
determines that these two transactions could not have touched the same data, and T
13
does not need to be undone.
This illustrates a very important point. With network transactions, the commit
sequence of network transactions may differ from one node to another, depending on
where the transactions originated. For example, consider two network transactions:
T
101
and T
102
. Assume T
101
originated on \M and T
102
originated on \N. Assume
further that they altered data on both \M and \N, and committed at the same time. The
commit operation for T
101
is coordinated by the TMP on \M because that is where T
101
originated; similarly, T
102
is coordinated by the TMP on \N because that is where T
102
originated. Thus, on \M, the sequence of commit records on the audit trail will likely be
T
101
followed by T
102
, whereas on \N it will likely be T
102
followed by T
101
.
Note, for the following two reasons, that we can be certain T
101
and T
102
did not alter
the same data:
1. Transaction record locking would have prevented these transactions from altering
the same data.
2. The commit sequence on \M being T
101
followed by T
102
and the commit
sequence on \N being T
102
followed by T
101
unequivocably means that these two
transactions were active at the same time and committed at the same time.
Therefore they could not have altered the same data.