From 6d59b4352a9536d310f6eef267c21d95f9306fa2 Mon Sep 17 00:00:00 2001 From: navid Date: Wed, 17 Sep 2008 03:35:35 +0000 Subject: [PATCH] *** empty log message *** --- Robust/Transactions/Notes/sysgurantees.dvi | Bin 34812 -> 35100 bytes Robust/Transactions/Notes/sysgurantees.tex | 10 ++++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Robust/Transactions/Notes/sysgurantees.dvi b/Robust/Transactions/Notes/sysgurantees.dvi index ad400e31ac9fefe82858ac94a5dbec86e9a9cdc8..3e9ee9f850bd5d72a929a36e8631d17eac7f9f19 100644 GIT binary patch delta 1272 zcmZ`(T}%{L7@eJ&1zeECO0eP!t5HhIu2O=P0b7lYRJMx3iWvLD?983+C9`vvnb{DU zhLyBw6Rjh|7uSKcB_u{|`cl}3c5KrKBs?_fvoyy3_~3(W8q?Ibru5Fvve>4bWRtsJ z&Ue0Z?ssPXyv$ykVkes`+AlH;6M*@FUGsf>V>VdVpl4KMfT$zrJ@J~oR*%lw!L45- zO(D93WWb6YtlOT}5&eTS34xAO(ZobEk~j_60F9U+BNL^thGc8*k{xB3#LV#@ka=Yx zJPHVDHh1@e38O&h;UY;pNcRcyT=(4z2^jOruOP+QAGL!cvDU~j#kmu|G#j}7&LXz# z$}Z%Jnp`doTXxmKD=ro6lt~L)!i!wC?ft~$({r6WBwePdaNh7~)@zifa@ulx`)saF z!KQcUgU?WU6$()YHz)6ZbhYiH#fw zA2+>}r5k*iVdy?`+~8ZS`>2`0p~E&e7&FjFrkDVtIHss;hA4SCC`QK+u?!}0iVFaV zrUM%$(k2(eCQXoM$MNjYb4iq#KM)zFn2409Rcs`Y9JS_rCr5~`6IIm51e?Eqf8}&Kzm|51mg62hIzmz@Y{KEm zFJD(}=JHV$j-$>5&8GoW$@;xXMU-WS+k02~lO&_ca8h@WBhjCX$}qZJc+$LQ7fvB0 zW6?y^uA-9^(5r-w;zqqw>%OQ}xYx9khZ~VNPu~?6xRyTt`sV4G!a&Q(K!vXw{)&7Q zm@8P(8&!eXLi>x`ImmQ%2BIL=Zi9Xy&d=6;wg$I^alf;v^F+DxyRJ8B=iY;LA^4_8 zU^}z4=UIQ!v2Ml3f8Jfod6VdTsE_qid@8n51v3Kz`zrky)YgYQLB%Av1tC7fu7iIc zI7h*!&P;ED{gS|*mNv*A4-Na|=frzuF_z?sc`Q8$!EYl1n`qd;uWFKy?;;Cj{-e5w zzonn4hArm>HqCC}KbhF=)HjZv`ocIYFf0HZ*ex8*=DB}Bh*al z!CajVEn{1VDS~ggLk|N5>O$g!Q1lc=Mnd$^gBCpmNqz3Dm!f%^`OfeB&;R?MdHjI< z)lUxOXb$zNR4M|D_Kb;Ib$Tb2@8+(zA#ae%zhdJMR8>|8zmrjuK;@rCjEm(Q$O*Jd z^l%8jA;y6Kwb^)@WxTDlN2I;Lu)K(Pbd_c>X&*TE0h#>6eS%q~;va^LK0t^GQaU#e zK43+jvoT(qBhoM0q1`H$B9~Zb7Bq2R4w}kc;$&Ul5HWgliuMb!Y^iKxoa;w!zo7N- zGIl8{Vp5uMN=;6_gN2OLme@>5p;?cju!?6b$}A_+JoYJ0t`)GfCKw1C1$E(z^+QZk zE}d)^VoZevCb5cdMVycJqWyw;<_5H6e$JsftVc{is-q-a1WMb)*Qr&vMV4vW?+@sA z_J;EWin|OSw3t|Bz`{0IRKzK!6jpZBCcN@va9LjX6lo zKE;bLErjq)0O|NE#oobYJM!!)*hf{NATx=d<**i#;`F+EyZE0hJ6Xy7i4UV zflZ6hns0@To7NCrFBD{-l2-QarZmdB!Dp%=hNU@EH37R!b<{DHN`^hT_o-3+;3Mf- z?wFPsml}$;tEr*gT_<3=xSkk;RBH$Bd19?3z*AgIJO^7s8Z4JwQktrd8gwvXNQ9ZP zW{hQ(C#b<$W+AOTm`kDXKPH2vqE>+$0wpsx;6By$AQt1Cq%+`)C(@8I|$v~x8#EI`~kb! Bf$RVP diff --git a/Robust/Transactions/Notes/sysgurantees.tex b/Robust/Transactions/Notes/sysgurantees.tex index 83e9592e..add98e81 100644 --- a/Robust/Transactions/Notes/sysgurantees.tex +++ b/Robust/Transactions/Notes/sysgurantees.tex @@ -45,9 +45,15 @@ proof: Consider case 1 that all precedessors are from sets of operations other t In case 2 that there are operations preceding $a$ in $OP_{T_i}$, according to defenition of transaction $r_i$ should be read from the writes made by write operations in $T_i$, and as the last of such write operation overrides the written data to $r_i$ by other operations, $a$ gets to see the most recent precedessor in $T_i$.\\ -Def 8- \emph{Precedence Relationship for Other Types of Operations}: Follwoing rules are ONLY enforced if precedence elationship is not etemined between two transactions by Def 6. 1-If $T_i$ and $T_j$ are two transactions both committed with commit instant of $T_j$ being greater than commit instant of $T_i$ then $\forall op_i \in OP_{T_i}, \forall op_j \in OP_{T_j} op_i \rightarrow op_j$. 2-If two operation belong to the same transaction, then the one that occurs earlier in natural order of transaction precedes the other. 3- If $T_i$ is committed and $T_j$ is not, $\forall op_i \in OP_{T_i}, \forall op_j \in OP_{T_j} op_i \rightarrow op_j$. 4- If neither $T_i$ has commited nor $T_j$, then $\forall op_i \in OP_{T_i}, \forall op_j \in OP_{T_j} op_i \rightarrow op_j$, if there is either not a precedence relationship between $op_i$ and $op_j$ or it is $op_i \rightarrow op_j$. 5- Otherwise, it means some operations in $T_i$ precede some of thos in $T_j$ and the other way around, for thos pairs not having such relationship it is assigned arbitrarily.\\ +Def 8- \emph{Precedence Relationship for Other Types of Operations}: Follwoing rules are ONLY enforced if precedence relationship is not detemined between two operations by Def 6. 1-If $T_i$ and $T_j$ are two transactions both committed with commit instant of $T_j$ being greater than commit instant of $T_i$ then $\forall op_i \in OP_{T_i}, \forall op_j \in OP_{T_j} op_i \rightarrow op_j$. 2-If two operation belong to the same transaction, then the one that occurs earlier in natural order of transaction precedes the other. 3- If $T_i$ is committed and $T_j$ is not, $\forall op_i \in OP_{T_i}, \forall op_j \in OP_{T_j} op_i \rightarrow op_j$. 4- If neither $T_i$ has commited nor $T_j$, then $\forall op_i \in OP_{T_i}, \forall op_j \in OP_{T_j} op_i \rightarrow op_j$, if there is either not a precedence relationship between $op_i$ and $op_j$ OR it is $op_i \rightarrow op_j$. 5- Otherwise, it means some operations in $T_i$ precede some of thos in $T_j$ and the other way around, for thos pairs not having such relationship it is assigned arbitrarily.\\ -Def 9- $\forall$ $op_{T_i}$ $\in OP_{T_i}$ and $\forall op_{T_j}\in OP_{T_j}$ if there is a precedence relationship between $op_{T_i}$ and $op_{T_i}$ if and only if $op_{T_i} \rightarrow op_{T_j}$ then $T_i$ $\rightarrow T_j$ \hspace{8mm} (this defines precedes relationship for members of $T$) \\ +Def 9- $\forall$ $op_{T_i}$ $\in OP_{T_i}$ and $\forall op_{T_j}\in OP_{T_j}$ if and only if $op_{T_i} \rightarrow op_{T_j}$ then $T_i$ $\rightarrow T_j$ \hspace{8mm} (this defines precedes relationship for members of $T$) \\ + +Def 10- A sequence of tarnsaction are said to be consistent if and only if a total ordeing of them according to precedence relationship can be established.\\ + +Corrolary: \emph{Upon Commit All Mebers of $T_{commit}$ Should Precede $T_i$} + +proof: Follows imeediately from Def 9 and Def 10. %Def 2- An operation in $T_i$ is said to have "used" the data when it has read some data and has done some actions that is potentially irreversible. hence if the data in question was to change, $op$ would have different results. A transaction with such an operation in its operations set is said to have used that data. Any data read and used within a transaction at its commit instant does not count as using. "Use" can just be attributed to the operations actually reading data before commit instant. \\ -- 2.34.1