From c21e25cf6b13b01af1fbd84b23f91f30cf20ad0c Mon Sep 17 00:00:00 2001 From: navid Date: Wed, 17 Sep 2008 17:51:18 +0000 Subject: [PATCH] *** empty log message *** --- Robust/Transactions/Notes/sysgurantees.dvi | Bin 35100 -> 33064 bytes Robust/Transactions/Notes/sysgurantees.tex | 32 ++++++++++----------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/Robust/Transactions/Notes/sysgurantees.dvi b/Robust/Transactions/Notes/sysgurantees.dvi index 3e9ee9f850bd5d72a929a36e8631d17eac7f9f19..d47df79c63d3ca5f958e03df7a5460fa13fb832f 100644 GIT binary patch delta 3271 zcmZuz4Qw3M5x(2qvz-{H3c-H_lAN6ooA~?}J26KZVu(@)8XW8xH-##Bcl(Z8cW?Ky zyJyD`dJ!s6wTk8KsF!VyHdsy_hyEz!(yFVv^sp&KX+zZ?DOJ^&qEb|lP$~3BsZ`Q= zyL-N~WXn4H-p#U%i&P_qq$)rZ5%L6VNw)}$X_7&q^m&WP5C5)UgMTdu)-5!m<n;^)6Xu5Ao(pFC>Bp}A)L<0ilHV@ZK1(Wz7I zIMGe+li>v7m68o9DN`s^QCBtH$ps4qr8r01?Iw|8rd0GQPxK5wI{@qI2G-7AMF^EF zKRYPJfXFhyXx%11z@Kle4ON`&w_Chd5R^b|qm6~tp;%d91vCS-4UsdjSXZ}Z&6^)! z8i8Y7`F^A-aP{qN!!2{Ro{Cy=e2o~8Kjac%WWrqabjZehya4Dl!*93;j@EDEHuS)$ z`o=28bG_Ajo|~_Khllfb4hZL}zIg_2+! zQYQ%tku%tJae|PKN~#9L1t4M-&zQLyb8ty&>Ju7C;H{Bs_xXGesG6qAL>o7eN}XX- zxPJZhp=1{6qbeEx{r7=39UUnPKIJkR8|e%-lAaOzx}^lAqJ+1R$04Sv31EHK!}{J7 z`gX7{_q3X23lAQOOFH1MjHVj0LA6FLs(7fyR4sv39cTU0Dosqm|C$5+Ge>ohaPDZgj%w?k_i<_#Pr#r~xX@iSIHp7)3RB`#IRXV*|QceSX=g&G_js zGeH^cBaQ~Lc6Yh-#t&XaeZm$)c6&+NdR$G(B1_S0j#AoH+>(UvhwkuC!PU@79&O-Y zYh4-zsl0NJEvn4D?&!kG?>cgTS3+WyaJfAB@N#9c=3-#H1@|bLe~+@1*Hay zh23ZhT}KHp?Lvm8p@|7qOI8@Z?ub=0Ak~_je_Kppc#%DAZn2nFvHmWom6vg$-4*Pr zhks;CNUfO|Be3DA0Y9q#RPW{yj| z0=+RU{@Q|*mdRh6XF`h2jvS6Jn?^dy_&c|EgnBI_i)Jz_MD=IQ9Te zbk?PX#p$>=)<%J9UU1#%6`|pmg+il{Rea_5IEG;a=Rj6yxI!33)s%s_SuQmha26@T z>5R}WtZVOIysIK`7Mn#H4S9jmRWyp6&Inf?Hzd?$&y$1_MHB?sXfXrp4tqo-rf}s8 zc9gN+p>CWo5kPN5bX2JX5YK%CU5sah<6GGbcQoaAQxx^j5lzdG$J5TdS+O4?rf|Fo zqbU}0N|aDm8A*_BMAuV^BvaW!sfv_ZsYA-kKVswlPp|b4nEZ5YXDGu@*Z1NynyypR zrOQs9SXlp3!m?MrtPtixJCx2nX2C{x=|+GXi+3}pM-G#cDwh9D_SolmOXDt(;SWcU z5J=wm8>Q`l=Y;h^cNPs;4E$nsJAf6Yv9lYovNL==6ur<`=Vj7F>=tnAh>)VfxuD*+ z0;&k|@)5ccsGjV=#!#5Uc}mvY0r~AuZedf?S^FHR%<#=Gl?XzXZ@$1-3;mz2-isBv zy#HYpZ!!i;S>p}|8qN*aj%eKfg3|`Ydc5X)rDMWeJ92YrE?n%YPge&E@G^BB|8L*bm%xh`*gbabV+ETm1@-Bp7)p0h&rCgi!UDvX6}8%`!=iHZ<| z2fIJ(-<~_&{jR?arv#BF>mHIP%&HH5?hS~->I8W;xg;kJeDK!JZMU!i2A!_xK~2vd z|ApLePdzW3Z8+Hr^Y;$Azf zVEVST@Qc33(DbhTLK%pCVJ`eRW-72X9NPPboTVoBT>qN^=p48$_tT**0XQ@i=Jx%= zDd68eA9F4GADb&HbGKNCMn=%%Zz5j}KxHJ%4O}RCB=N(p{ZHaO9>g zK32or(T1Y^{rn$lNN>IX delta 5473 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 t_i$ then all members of $T_{commited}$ should precede $T_j$ (hence they should succed)\\ +Rule 2- If $T_j$ "commits" at instant $t_j$, and $T_{commited}$ denotes the set of all commited transactions at $t_i$ such that $t_j > t_i$ then all members of $T_{commited}$ should precede $T_j$ (hence they should succed)\\ proof: $T_i$ denotes the last commited member of $T_{commited}$. Lets assume on the contrary $T_i$ does not precede $T_j$ and hence $T_j \rightarrow T_i$.\\ @@ -96,16 +95,17 @@ If there is not a pair of (read, write) or (write, read), sharing resource $r_n$ If there are such operations, 1-At least an operation $a$ reads from $r_n$ in $OP_i$ sees the writes made by a write operation on $r_n$($b$) in $OP_j$, however since $T_j$ is just about to commit and acording to Def 4, writes are not reflected till commit instant, hence $a$ could not have read the writes made by $b$ and consequently $a$ does not precede $b$ contradicting the assumption $T_j \rightarrow T_i$ . OR 2- An operation $a$ in $T_i$ writes to resource $r_i$ and operation $b$ in $T_j$ reads resource $b$, according to Def 5 and Def 5 $a$ precedes $b$ and $b$ does not precede $a$, hence contradicting the assumption that $T_j \rightarrow T_i$.\\ -If -If an operation $op_{i_1}$ in $OP_i$, writes some data used by an operation $op_{j_i}$ in $OP_j$, then $op_{j_1}$ can not precede $op_{i_1}$ since then it could not have seen the changes by it, however def 3 says it does, this is in contrats to the assumption. On the other hand, if $op_{j_1}$ affects some data used by $op{i_1}$, then since $op{i_1}$ has not seen the change, $op{j_1}$ can not precede $op{i_1}$. If no operations in $OP_i$ affects another in $OP_j$, then the set of all opeartions in $OP_i$ both precede and succed those in $OP_j$, and hence the contraray to the assumption. In this case, the transaction are conceptually interchangable. In either case, $T_j$ either "succeds" or "succeds and precedes" $T_i$. Either way it succeds the other. \\ +The same reasoning could be done for $T_i$ and $T_{i-1}$, $T_{i-1}$ the last commited transaction before $T_{i}$. Now according to rule 3, since $T_{i-1}$ precedes $T_i$ and $T_i$ precedes $T_{j}$, hence $T_{i-1}$ precedes $T_{j}$. Same reasoning is applied for all the members of $T_{commited}$. \\ -The same reasoning could be done for $T_i$ and $T_{i-1}$, $T_{i-1}$ the last commited transaction before $T_{i}$. Now according to rule 3, since $T_j$ succeds $T_i$ and $T_i$ succeds $T_{i-1}$, hence $T_j$ succeds $T_{i-1}$. Same reasoning is applied for all the members of $T_{commited}$. \\ +%If an operation $op_{i_1}$ in $OP_i$, writes some data used by an operation $op_{j_i}$ in $OP_j$, then $op_{j_1}$ can not precede $op_{i_1}$ since then it could not have seen the changes by it, however def 3 says it does, this is in contrats to the assumption. On the other hand, if $op_{j_1}$ affects some data used by $op{i_1}$, then since $op{i_1}$ has not seen the change, $op{j_1}$ can not precede $op{i_1}$. If no operations in $OP_i$ affects another in $OP_j$, then the set of all opeartions in $OP_i$ both precede and succed those in $OP_j$, and hence the contraray to the assumption. In this case, the transaction are conceptually interchangable. In either case, $T_j$ either "succeds" or "succeds and precedes" $T_i$. Either way it succeds the other. \\ -Rule 6- If $T_j$ "commits" at instant $t_j$, and $T_{commited}$ denotes the set of all commited transactions at $t_i$ such that $t_j > t_i$ then $\forall op_i \in OP_{T_i}$, $\forall op_{all} \in$ the union of $OP_j$, such that $OP_j$ is the set of operations for every $T_j \in T_{commited}$, then $op_i$ should not \emph ONLY precede $op_{all}$ (hence it should at least succed)\\ -Follows immediately from rule 4 and def 7. + +Rule 3- If $T_j$ "commits" at instant $t_j$, and $T_{commited}$ denotes the set of all commited transactions at $t_i$ such that $t_j > t_i$ then $\forall op_i \in OP_{T_i}$, $\forall op_{all} \in$ the union of $OP_j$, such that $OP_j$ is the set of operations for every $T_j \in T_{commited}$, then $op_{all}$ should precede $op_{i}$.\\ + +Follows immediately from Rule 2 and Def 7. \subsection{TransactionalFile Opeartions} TransactioalFiles can be either created inside or outside $T$. The TransactionalFile object ensures transactional access no matter where it is created and accessed. Meaning the first time $T_i$ \emph {uses} $tf_j$ the flow of the program should look like no other piece of code (i.e Transactional and non-transactional) outside $T_i$ will \emph {modify} $tf_j$ before $OP(endtransaction)_{T_i}$. Otherwise, $T_i$ has to abort. \\ -- 2.34.1