Databases Reference
In-Depth Information
B 1
G 1
B 2
G 2
G 4
Fig. 3. Dependency Graph for History H 1
reads o after T i has updated o ; T i does not abort before T j reads o ; and every
transaction (if any) that updates o between the time T i updates o and T j reads
o is aborted before T j reads x . In a history, T 1 affects T 2 if the ordered pair
( T 1 ,T 2 ) is in the transitive closure of the dependent upon relation. Finally, we
define the dependency graph for a (any) set of transactions S in a history as
DG ( S )=( V,E )inwhich V is the union of S and the set of transactions that
are affected by S . There is an edge, T i
T j ,in E if T i
V , T j
( V
S ),
and T j is dependent upon T i .
Example Consider the following history over ( B 1 ,B 2 ,G 1 ,G 2 ,G 3 ,G 4 ):
H 1 : r B 1 [ x ] w B 1 [ x ] c B 1 r G 1 [ x ] w G 1 [ x ] r G 3 [ z ] w G 3 [ z ] c G 3 r G 1 [ y ] w G 1 [ y ] c G 1
r G 2 [ y ] w G 2 [ y ] r B 2 [ z ] w B 2 [ z ] c B 2 r G 2 [ v ] w G 2 [ v ] c G 2 r G 4 [ z ] w G 4 [ z ] r G 4 [ y ] w G 4 [ y ] c G 4
In H 1 , B 1 and B 2 are malicious transactions while the other three are
legitimate transactions; r T [ x ]( w T [ x ]) is a read (write) operation by transac-
tion T on data object x ; c T is the commit operation of T .Let B =
{
B 1 ,B 2 }
,
DG ( B ) is shown in Figure 3.
Lemma 4.1 In a DQR history, a legitimate transaction is affected
if and only if it is in dependency graph DG (all malicious transactions plus
all the legitimate transactions that read the original version of any Type 3
corrupted data object). Being conservative, we assume all updates done by
affected transactions may spread the damage.
Do We Have to Sacrifice Durability?
A main concern people may have on DQR solutions is whether they will
compromise Durability , a fundamental property of transaction processing and
transactional failure recovery mechanisms. In other words, do we have to sac-
rifice Durability in doing DQR? Fortunately, the answer is NO. To keep dura-
bility, DQR schemes never really need to undo a malicious or affected trans-
action; instead, they can execute cleaning transactions to semantically revoke
the effect of a committed transaction. By semantically revoking the effect of a
committed transaction, we can achieve the following: (a) The effect of a com-
mitted transaction will always be kept durable; we never revoke or reverse
any physical effect of a committed transaction on the persistent storage. (b)
A cleaning transaction will change the data store state in exactly the same
Search WWH ::




Custom Search