libtp_usenix.ps
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:164k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. %!PS-Adobe-1.0
  2. %%Creator: utopia:margo (& Seltzer,608-13E,8072,)
  3. %%Title: stdin (ditroff)
  4. %%CreationDate: Thu Dec 12 15:32:11 1991
  5. %%EndComments
  6. % @(#)psdit.pro 1.3 4/15/88
  7. % lib/psdit.pro -- prolog for psdit (ditroff) files
  8. % Copyright (c) 1984, 1985 Adobe Systems Incorporated. All Rights Reserved.
  9. % last edit: shore Sat Nov 23 20:28:03 1985
  10. % RCSID: $Header: psdit.pro,v 2.1 85/11/24 12:19:43 shore Rel $
  11. % Changed by Edward Wang (edward@ucbarpa.berkeley.edu) to handle graphics,
  12. % 17 Feb, 87.
  13. /$DITroff 140 dict def $DITroff begin
  14. /fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def
  15. /xi{0 72 11 mul translate 72 resolution div dup neg scale 0 0 moveto
  16.  /fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def F
  17.  /pagesave save def}def
  18. /PB{save /psv exch def currentpoint translate 
  19.  resolution 72 div dup neg scale 0 0 moveto}def
  20. /PE{psv restore}def
  21. /arctoobig 90 def /arctoosmall .05 def
  22. /m1 matrix def /m2 matrix def /m3 matrix def /oldmat matrix def
  23. /tan{dup sin exch cos div}def
  24. /point{resolution 72 div mul}def
  25. /dround {transform round exch round exch itransform}def
  26. /xT{/devname exch def}def
  27. /xr{/mh exch def /my exch def /resolution exch def}def
  28. /xp{}def
  29. /xs{docsave restore end}def
  30. /xt{}def
  31. /xf{/fontname exch def /slotno exch def fontnames slotno get fontname eq not
  32.  {fonts slotno fontname findfont put fontnames slotno fontname put}if}def
  33. /xH{/fontheight exch def F}def
  34. /xS{/fontslant exch def F}def
  35. /s{/fontsize exch def /fontheight fontsize def F}def
  36. /f{/fontnum exch def F}def
  37. /F{fontheight 0 le{/fontheight fontsize def}if
  38.  fonts fontnum get fontsize point 0 0 fontheight point neg 0 0 m1 astore
  39.  fontslant 0 ne{1 0 fontslant tan 1 0 0 m2 astore m3 concatmatrix}if
  40.  makefont setfont .04 fontsize point mul 0 dround pop setlinewidth}def
  41. /X{exch currentpoint exch pop moveto show}def
  42. /N{3 1 roll moveto show}def
  43. /Y{exch currentpoint pop exch moveto show}def
  44. /S{show}def
  45. /ditpush{}def/ditpop{}def
  46. /AX{3 -1 roll currentpoint exch pop moveto 0 exch ashow}def
  47. /AN{4 2 roll moveto 0 exch ashow}def
  48. /AY{3 -1 roll currentpoint pop exch moveto 0 exch ashow}def
  49. /AS{0 exch ashow}def
  50. /MX{currentpoint exch pop moveto}def
  51. /MY{currentpoint pop exch moveto}def
  52. /MXY{moveto}def
  53. /cb{pop}def % action on unknown char -- nothing for now
  54. /n{}def/w{}def
  55. /p{pop showpage pagesave restore /pagesave save def}def
  56. /Dt{/Dlinewidth exch def}def 1 Dt
  57. /Ds{/Ddash exch def}def -1 Ds
  58. /Di{/Dstipple exch def}def 1 Di
  59. /Dsetlinewidth{2 Dlinewidth mul setlinewidth}def
  60. /Dsetdash{Ddash 4 eq{[8 12]}{Ddash 16 eq{[32 36]}
  61.  {Ddash 20 eq{[32 12 8 12]}{[]}ifelse}ifelse}ifelse 0 setdash}def
  62. /Dstroke{gsave Dsetlinewidth Dsetdash 1 setlinecap stroke grestore
  63.  currentpoint newpath moveto}def
  64. /Dl{rlineto Dstroke}def
  65. /arcellipse{/diamv exch def /diamh exch def oldmat currentmatrix pop
  66.  currentpoint translate 1 diamv diamh div scale /rad diamh 2 div def
  67.  currentpoint exch rad add exch rad -180 180 arc oldmat setmatrix}def
  68. /Dc{dup arcellipse Dstroke}def
  69. /De{arcellipse Dstroke}def
  70. /Da{/endv exch def /endh exch def /centerv exch def /centerh exch def
  71.  /cradius centerv centerv mul centerh centerh mul add sqrt def
  72.  /eradius endv endv mul endh endh mul add sqrt def
  73.  /endang endv endh atan def
  74.  /startang centerv neg centerh neg atan def
  75.  /sweep startang endang sub dup 0 lt{360 add}if def
  76.  sweep arctoobig gt
  77.  {/midang startang sweep 2 div sub def /midrad cradius eradius add 2 div def
  78.   /midh midang cos midrad mul def /midv midang sin midrad mul def
  79.   midh neg midv neg endh endv centerh centerv midh midv Da
  80.   Da}
  81.  {sweep arctoosmall ge
  82.   {/controldelt 1 sweep 2 div cos sub 3 sweep 2 div sin mul div 4 mul def
  83.    centerv neg controldelt mul centerh controldelt mul
  84.    endv neg controldelt mul centerh add endh add
  85.    endh controldelt mul centerv add endv add
  86.    centerh endh add centerv endv add rcurveto Dstroke}
  87.   {centerh endh add centerv endv add rlineto Dstroke}
  88.   ifelse}
  89.  ifelse}def
  90. /Dpatterns[
  91. [%cf[widthbits]
  92. [8<0000000000000010>]
  93. [8<0411040040114000>]
  94. [8<0204081020408001>]
  95. [8<0000103810000000>]
  96. [8<6699996666999966>]
  97. [8<0000800100001008>]
  98. [8<81c36666c3810000>]
  99. [8<0f0e0c0800000000>]
  100. [8<0000000000000010>]
  101. [8<0411040040114000>]
  102. [8<0204081020408001>]
  103. [8<0000001038100000>]
  104. [8<6699996666999966>]
  105. [8<0000800100001008>]
  106. [8<81c36666c3810000>]
  107. [8<0f0e0c0800000000>]
  108. [8<0042660000246600>]
  109. [8<0000990000990000>]
  110. [8<0804020180402010>]
  111. [8<2418814242811824>]
  112. [8<6699996666999966>]
  113. [8<8000000008000000>]
  114. [8<00001c3e363e1c00>]
  115. [8<0000000000000000>]
  116. [32<00000040000000c00000004000000040000000e0000000000000000000000000>]
  117. [32<00000000000060000000900000002000000040000000f0000000000000000000>]
  118. [32<000000000000000000e0000000100000006000000010000000e0000000000000>]
  119. [32<00000000000000002000000060000000a0000000f00000002000000000000000>]
  120. [32<0000000e0000000000000000000000000000000f000000080000000e00000001>]
  121. [32<0000090000000600000000000000000000000000000007000000080000000e00>]
  122. [32<00010000000200000004000000040000000000000000000000000000000f0000>]
  123. [32<0900000006000000090000000600000000000000000000000000000006000000>]]
  124. [%ug
  125. [8<0000020000000000>]
  126. [8<0000020000002000>]
  127. [8<0004020000002000>]
  128. [8<0004020000402000>]
  129. [8<0004060000402000>]
  130. [8<0004060000406000>]
  131. [8<0006060000406000>]
  132. [8<0006060000606000>]
  133. [8<00060e0000606000>]
  134. [8<00060e000060e000>]
  135. [8<00070e000060e000>]
  136. [8<00070e000070e000>]
  137. [8<00070e020070e000>]
  138. [8<00070e020070e020>]
  139. [8<04070e020070e020>]
  140. [8<04070e024070e020>]
  141. [8<04070e064070e020>]
  142. [8<04070e064070e060>]
  143. [8<06070e064070e060>]
  144. [8<06070e066070e060>]
  145. [8<06070f066070e060>]
  146. [8<06070f066070f060>]
  147. [8<060f0f066070f060>]
  148. [8<060f0f0660f0f060>]
  149. [8<060f0f0760f0f060>]
  150. [8<060f0f0760f0f070>]
  151. [8<0e0f0f0760f0f070>]
  152. [8<0e0f0f07e0f0f070>]
  153. [8<0e0f0f0fe0f0f070>]
  154. [8<0e0f0f0fe0f0f0f0>]
  155. [8<0f0f0f0fe0f0f0f0>]
  156. [8<0f0f0f0ff0f0f0f0>]
  157. [8<1f0f0f0ff0f0f0f0>]
  158. [8<1f0f0f0ff1f0f0f0>]
  159. [8<1f0f0f8ff1f0f0f0>]
  160. [8<1f0f0f8ff1f0f0f8>]
  161. [8<9f0f0f8ff1f0f0f8>]
  162. [8<9f0f0f8ff9f0f0f8>]
  163. [8<9f0f0f9ff9f0f0f8>]
  164. [8<9f0f0f9ff9f0f0f9>]
  165. [8<9f8f0f9ff9f0f0f9>]
  166. [8<9f8f0f9ff9f8f0f9>]
  167. [8<9f8f1f9ff9f8f0f9>]
  168. [8<9f8f1f9ff9f8f1f9>]
  169. [8<bf8f1f9ff9f8f1f9>]
  170. [8<bf8f1f9ffbf8f1f9>]
  171. [8<bf8f1fdffbf8f1f9>]
  172. [8<bf8f1fdffbf8f1fd>]
  173. [8<ff8f1fdffbf8f1fd>]
  174. [8<ff8f1fdffff8f1fd>]
  175. [8<ff8f1ffffff8f1fd>]
  176. [8<ff8f1ffffff8f1ff>]
  177. [8<ff9f1ffffff8f1ff>]
  178. [8<ff9f1ffffff9f1ff>]
  179. [8<ff9f9ffffff9f1ff>]
  180. [8<ff9f9ffffff9f9ff>]
  181. [8<ffbf9ffffff9f9ff>]
  182. [8<ffbf9ffffffbf9ff>]
  183. [8<ffbfdffffffbf9ff>]
  184. [8<ffbfdffffffbfdff>]
  185. [8<ffffdffffffbfdff>]
  186. [8<ffffdffffffffdff>]
  187. [8<fffffffffffffdff>]
  188. [8<ffffffffffffffff>]]
  189. [%mg
  190. [8<8000000000000000>]
  191. [8<0822080080228000>]
  192. [8<0204081020408001>]
  193. [8<40e0400000000000>]
  194. [8<66999966>]
  195. [8<8001000010080000>]
  196. [8<81c36666c3810000>]
  197. [8<f0e0c08000000000>]
  198. [16<07c00f801f003e007c00f800f001e003c007800f001f003e007c00f801f003e0>]
  199. [16<1f000f8007c003e001f000f8007c003e001f800fc007e003f001f8007c003e00>]
  200. [8<c3c300000000c3c3>]
  201. [16<0040008001000200040008001000200040008000000100020004000800100020>]
  202. [16<0040002000100008000400020001800040002000100008000400020001000080>]
  203. [16<1fc03fe07df0f8f8f07de03fc01f800fc01fe03ff07df8f87df03fe01fc00f80>]
  204. [8<80>]
  205. [8<8040201000000000>]
  206. [8<84cc000048cc0000>]
  207. [8<9900009900000000>]
  208. [8<08040201804020100800020180002010>]
  209. [8<2418814242811824>]
  210. [8<66999966>]
  211. [8<8000000008000000>]
  212. [8<70f8d8f870000000>]
  213. [8<0814224180402010>]
  214. [8<aa00440a11a04400>]
  215. [8<018245aa45820100>]
  216. [8<221c224180808041>]
  217. [8<88000000>]
  218. [8<0855800080550800>]
  219. [8<2844004482440044>]
  220. [8<0810204080412214>]
  221. [8<00>]]]def
  222. /Dfill{
  223.  transform /maxy exch def /maxx exch def
  224.  transform /miny exch def /minx exch def
  225.  minx maxx gt{/minx maxx /maxx minx def def}if
  226.  miny maxy gt{/miny maxy /maxy miny def def}if
  227.  Dpatterns Dstipple 1 sub get exch 1 sub get
  228.  aload pop /stip exch def /stipw exch def /stiph 128 def
  229.  /imatrix[stipw 0 0 stiph 0 0]def
  230.  /tmatrix[stipw 0 0 stiph 0 0]def
  231.  /minx minx cvi stiph idiv stiph mul def
  232.  /miny miny cvi stipw idiv stipw mul def
  233.  gsave eoclip 0 setgray
  234.  miny stiph maxy{
  235.   tmatrix exch 5 exch put
  236.   minx stipw maxx{
  237.    tmatrix exch 4 exch put tmatrix setmatrix
  238.    stipw stiph true imatrix {stip} imagemask
  239.   }for
  240.  }for
  241.  grestore
  242. }def
  243. /Dp{Dfill Dstroke}def
  244. /DP{Dfill currentpoint newpath moveto}def
  245. end
  246. /ditstart{$DITroff begin
  247.  /nfonts 60 def % NFONTS makedev/ditroff dependent!
  248.  /fonts[nfonts{0}repeat]def
  249.  /fontnames[nfonts{()}repeat]def
  250. /docsave save def
  251. }def
  252. % character outcalls
  253. /oc{
  254.  /pswid exch def /cc exch def /name exch def
  255.  /ditwid pswid fontsize mul resolution mul 72000 div def
  256.  /ditsiz fontsize resolution mul 72 div def
  257.  ocprocs name known{ocprocs name get exec}{name cb}ifelse
  258. }def
  259. /fractm [.65 0 0 .6 0 0] def
  260. /fraction{
  261.  /fden exch def /fnum exch def gsave /cf currentfont def
  262.  cf fractm makefont setfont 0 .3 dm 2 copy neg rmoveto
  263.  fnum show rmoveto currentfont cf setfont(244)show setfont fden show 
  264.  grestore ditwid 0 rmoveto
  265. }def
  266. /oce{grestore ditwid 0 rmoveto}def
  267. /dm{ditsiz mul}def
  268. /ocprocs 50 dict def ocprocs begin
  269. (14){(1)(4)fraction}def
  270. (12){(1)(2)fraction}def
  271. (34){(3)(4)fraction}def
  272. (13){(1)(3)fraction}def
  273. (23){(2)(3)fraction}def
  274. (18){(1)(8)fraction}def
  275. (38){(3)(8)fraction}def
  276. (58){(5)(8)fraction}def
  277. (78){(7)(8)fraction}def
  278. (sr){gsave 0 .06 dm rmoveto(326)show oce}def
  279. (is){gsave 0 .15 dm rmoveto(362)show oce}def
  280. (->){gsave 0 .02 dm rmoveto(256)show oce}def
  281. (<-){gsave 0 .02 dm rmoveto(254)show oce}def
  282. (==){gsave 0 .05 dm rmoveto(272)show oce}def
  283. (uc){gsave currentpoint 400 .009 dm mul add translate
  284.      8 -8 scale ucseal oce}def
  285. end
  286. % an attempt at a PostScript FONT to implement ditroff special chars
  287. % this will enable us to 
  288. % cache the little buggers
  289. % generate faster, more compact PS out of psdit
  290. % confuse everyone (including myself)!
  291. 50 dict dup begin
  292. /FontType 3 def
  293. /FontName /DIThacks def
  294. /FontMatrix [.001 0 0 .001 0 0] def
  295. /FontBBox [-260 -260 900 900] def% a lie but ...
  296. /Encoding 256 array def
  297. 0 1 255{Encoding exch /.notdef put}for
  298. Encoding
  299.  dup 8#040/space put %space
  300.  dup 8#110/rc put %right ceil
  301.  dup 8#111/lt put %left  top curl
  302.  dup 8#112/bv put %bold vert
  303.  dup 8#113/lk put %left  mid curl
  304.  dup 8#114/lb put %left  bot curl
  305.  dup 8#115/rt put %right top curl
  306.  dup 8#116/rk put %right mid curl
  307.  dup 8#117/rb put %right bot curl
  308.  dup 8#120/rf put %right floor
  309.  dup 8#121/lf put %left  floor
  310.  dup 8#122/lc put %left  ceil
  311.  dup 8#140/sq put %square
  312.  dup 8#141/bx put %box
  313.  dup 8#142/ci put %circle
  314.  dup 8#143/br put %box rule
  315.  dup 8#144/rn put %root extender
  316.  dup 8#145/vr put %vertical rule
  317.  dup 8#146/ob put %outline bullet
  318.  dup 8#147/bu put %bullet
  319.  dup 8#150/ru put %rule
  320.  dup 8#151/ul put %underline
  321.  pop
  322. /DITfd 100 dict def
  323. /BuildChar{0 begin
  324.  /cc exch def /fd exch def
  325.  /charname fd /Encoding get cc get def
  326.  /charwid fd /Metrics get charname get def
  327.  /charproc fd /CharProcs get charname get def
  328.  charwid 0 fd /FontBBox get aload pop setcachedevice
  329.  2 setlinejoin 40 setlinewidth
  330.  newpath 0 0 moveto gsave charproc grestore
  331.  end}def
  332. /BuildChar load 0 DITfd put
  333. /CharProcs 50 dict def
  334. CharProcs begin
  335. /space{}def
  336. /.notdef{}def
  337. /ru{500 0 rls}def
  338. /rn{0 840 moveto 500 0 rls}def
  339. /vr{0 800 moveto 0 -770 rls}def
  340. /bv{0 800 moveto 0 -1000 rls}def
  341. /br{0 840 moveto 0 -1000 rls}def
  342. /ul{0 -140 moveto 500 0 rls}def
  343. /ob{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath stroke}def
  344. /bu{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath fill}def
  345. /sq{80 0 rmoveto currentpoint dround newpath moveto
  346.     640 0 rlineto 0 640 rlineto -640 0 rlineto closepath stroke}def
  347. /bx{80 0 rmoveto currentpoint dround newpath moveto
  348.     640 0 rlineto 0 640 rlineto -640 0 rlineto closepath fill}def
  349. /ci{500 360 rmoveto currentpoint newpath 333 0 360 arc
  350.     50 setlinewidth stroke}def
  351. /lt{0 -200 moveto 0 550 rlineto currx 800 2cx s4 add exch s4 a4p stroke}def
  352. /lb{0 800 moveto 0 -550 rlineto currx -200 2cx s4 add exch s4 a4p stroke}def
  353. /rt{0 -200 moveto 0 550 rlineto currx 800 2cx s4 sub exch s4 a4p stroke}def
  354. /rb{0 800 moveto 0 -500 rlineto currx -200 2cx s4 sub exch s4 a4p stroke}def
  355. /lk{0 800 moveto 0 300 -300 300 s4 arcto pop pop 1000 sub
  356.     0 300 4 2 roll s4 a4p 0 -200 lineto stroke}def
  357. /rk{0 800 moveto 0 300 s2 300 s4 arcto pop pop 1000 sub
  358.     0 300 4 2 roll s4 a4p 0 -200 lineto stroke}def
  359. /lf{0 800 moveto 0 -1000 rlineto s4 0 rls}def
  360. /rf{0 800 moveto 0 -1000 rlineto s4 neg 0 rls}def
  361. /lc{0 -200 moveto 0 1000 rlineto s4 0 rls}def
  362. /rc{0 -200 moveto 0 1000 rlineto s4 neg 0 rls}def
  363. end
  364. /Metrics 50 dict def Metrics begin
  365. /.notdef 0 def
  366. /space 500 def
  367. /ru 500 def
  368. /br 0 def
  369. /lt 416 def
  370. /lb 416 def
  371. /rt 416 def
  372. /rb 416 def
  373. /lk 416 def
  374. /rk 416 def
  375. /rc 416 def
  376. /lc 416 def
  377. /rf 416 def
  378. /lf 416 def
  379. /bv 416 def
  380. /ob 350 def
  381. /bu 350 def
  382. /ci 750 def
  383. /bx 750 def
  384. /sq 750 def
  385. /rn 500 def
  386. /ul 500 def
  387. /vr 0 def
  388. end
  389. DITfd begin
  390. /s2 500 def /s4 250 def /s3 333 def
  391. /a4p{arcto pop pop pop pop}def
  392. /2cx{2 copy exch}def
  393. /rls{rlineto stroke}def
  394. /currx{currentpoint pop}def
  395. /dround{transform round exch round exch itransform} def
  396. end
  397. end
  398. /DIThacks exch definefont pop
  399. ditstart
  400. (psc)xT
  401. 576 1 1 xr
  402. 1(Times-Roman)xf 1 f
  403. 2(Times-Italic)xf 2 f
  404. 3(Times-Bold)xf 3 f
  405. 4(Times-BoldItalic)xf 4 f
  406. 5(Helvetica)xf 5 f
  407. 6(Helvetica-Bold)xf 6 f
  408. 7(Courier)xf 7 f
  409. 8(Courier-Bold)xf 8 f
  410. 9(Symbol)xf 9 f
  411. 10(DIThacks)xf 10 f
  412. 10 s
  413. 1 f
  414. xi
  415. %%EndProlog
  416. %%Page: 1 1
  417. 10 s 10 xH 0 xS 1 f
  418. 3 f
  419. 14 s
  420. 1205 1206(LIBTP:)N
  421. 1633(Portable,)X
  422. 2100(M)X
  423. 2206(odular)X
  424. 2551(Transactions)X
  425. 3202(for)X
  426. 3374(UNIX)X
  427. 1 f
  428. 11 s
  429. 3661 1162(1)N
  430. 2 f
  431. 12 s
  432. 2182 1398(Margo)N
  433. 2467(Seltzer)X
  434. 2171 1494(Michael)N
  435. 2511(Olson)X
  436. 1800 1590(University)N
  437. 2225(of)X
  438. 2324(California,)X
  439. 2773(Berkeley)X
  440. 3 f
  441. 2277 1878(Abstract)N
  442. 1 f
  443. 10 s
  444. 755 2001(Transactions)N
  445. 1198(provide)X
  446. 1475(a)X
  447. 1543(useful)X
  448. 1771(programming)X
  449. 2239(paradigm)X
  450. 2574(for)X
  451. 2700(maintaining)X
  452. 3114(logical)X
  453. 3364(consistency,)X
  454. 3790(arbitrating)X
  455. 4156(con-)X
  456. 555 2091(current)N
  457. 808(access,)X
  458. 1059(and)X
  459. 1200(managing)X
  460. 1540(recovery.)X
  461. 1886(In)X
  462. 1977(traditional)X
  463. 2330(UNIX)X
  464. 2555(systems,)X
  465. 2852(the)X
  466. 2974(only)X
  467. 3140(easy)X
  468. 3307(way)X
  469. 3465(of)X
  470. 3556(using)X
  471. 3753(transactions)X
  472. 4160(is)X
  473. 4237(to)X
  474. 555 2181(purchase)N
  475. 876(a)X
  476. 947(database)X
  477. 1258(system.)X
  478. 1554(Such)X
  479. 1748(systems)X
  480. 2035(are)X
  481. 2168(often)X
  482. 2367(slow,)X
  483. 2572(costly,)X
  484. 2817(and)X
  485. 2967(may)X
  486. 3139(not)X
  487. 3275(provide)X
  488. 3554(the)X
  489. 3686(exact)X
  490. 3890(functionality)X
  491. 555 2271(desired.)N
  492. 848(This)X
  493. 1011(paper)X
  494. 1210(presents)X
  495. 1493(the)X
  496. 1611(design,)X
  497. 1860(implementation,)X
  498. 2402(and)X
  499. 2538(performance)X
  500. 2965(of)X
  501. 3052(LIBTP,)X
  502. 3314(a)X
  503. 3370(simple,)X
  504. 3623(non-proprietary)X
  505. 4147(tran-)X
  506. 555 2361(saction)N
  507. 809(library)X
  508. 1050(using)X
  509. 1249(the)X
  510. 1373(4.4BSD)X
  511. 1654(database)X
  512. 1957(access)X
  513. 2189(routines)X
  514. 2473(()X
  515. 3 f
  516. 2500(db)X
  517. 1 f
  518. 2588((3)).)X
  519. 2775(On)X
  520. 2899(a)X
  521. 2961(conventional)X
  522. 3401(transaction)X
  523. 3779(processing)X
  524. 4148(style)X
  525. 555 2451(benchmark,)N
  526. 959(its)X
  527. 1061(performance)X
  528. 1495(is)X
  529. 1575(approximately)X
  530. 2065(85%)X
  531. 2239(that)X
  532. 2386(of)X
  533. 2480(the)X
  534. 2604(database)X
  535. 2907(access)X
  536. 3139(routines)X
  537. 3423(without)X
  538. 3693(transaction)X
  539. 4071(protec-)X
  540. 555 2541(tion,)N
  541. 725(200%)X
  542. 938(that)X
  543. 1084(of)X
  544. 1177(using)X
  545. 3 f
  546. 1376(fsync)X
  547. 1 f
  548. 1554((2))X
  549. 1674(to)X
  550. 1761(commit)X
  551. 2030(modi256cations)X
  552. 2490(to)X
  553. 2577(disk,)X
  554. 2755(and)X
  555. 2896(125%)X
  556. 3108(that)X
  557. 3253(of)X
  558. 3345(a)X
  559. 3406(commercial)X
  560. 3810(relational)X
  561. 4138(data-)X
  562. 555 2631(base)N
  563. 718(system.)X
  564. 3 f
  565. 555 2817(1.)N
  566. 655(Introduction)X
  567. 1 f
  568. 755 2940(Transactions)N
  569. 1186(are)X
  570. 1306(used)X
  571. 1474(in)X
  572. 1557(database)X
  573. 1855(systems)X
  574. 2129(to)X
  575. 2212(enable)X
  576. 2443(concurrent)X
  577. 2807(users)X
  578. 2992(to)X
  579. 3074(apply)X
  580. 3272(multi-operation)X
  581. 3790(updates)X
  582. 4055(without)X
  583. 555 3030(violating)N
  584. 863(the)X
  585. 985(integrity)X
  586. 1280(of)X
  587. 1371(the)X
  588. 1493(database.)X
  589. 1814(They)X
  590. 2003(provide)X
  591. 2271(the)X
  592. 2392(properties)X
  593. 2736(of)X
  594. 2826(atomicity,)X
  595. 3171(consistency,)X
  596. 3588(isolation,)X
  597. 3906(and)X
  598. 4045(durabil-)X
  599. 555 3120(ity.)N
  600. 701(By)X
  601. 816(atomicity,)X
  602. 1160(we)X
  603. 1276(mean)X
  604. 1472(that)X
  605. 1614(the)X
  606. 1734(set)X
  607. 1845(of)X
  608. 1934(updates)X
  609. 2200(comprising)X
  610. 2581(a)X
  611. 2638(transaction)X
  612. 3011(must)X
  613. 3187(be)X
  614. 3284(applied)X
  615. 3541(as)X
  616. 3629(a)X
  617. 3686(single)X
  618. 3898(unit;)X
  619. 4085(that)X
  620. 4226(is,)X
  621. 555 3210(they)N
  622. 714(must)X
  623. 890(either)X
  624. 1094(all)X
  625. 1195(be)X
  626. 1292(applied)X
  627. 1549(to)X
  628. 1632(the)X
  629. 1751(database)X
  630. 2049(or)X
  631. 2137(all)X
  632. 2238(be)X
  633. 2335(absent.)X
  634. 2601(Consistency)X
  635. 3013(requires)X
  636. 3293(that)X
  637. 3434(a)X
  638. 3491(transaction)X
  639. 3864(take)X
  640. 4019(the)X
  641. 4138(data-)X
  642. 555 3300(base)N
  643. 725(from)X
  644. 908(one)X
  645. 1051(logically)X
  646. 1358(consistent)X
  647. 1704(state)X
  648. 1877(to)X
  649. 1965(another.)X
  650. 2272(The)X
  651. 2423(property)X
  652. 2721(of)X
  653. 2814(isolation)X
  654. 3115(requires)X
  655. 3400(that)X
  656. 3546(concurrent)X
  657. 3916(transactions)X
  658. 555 3390(yield)N
  659. 750(results)X
  660. 994(which)X
  661. 1225(are)X
  662. 1358(indistinguishable)X
  663. 1938(from)X
  664. 2128(the)X
  665. 2260(results)X
  666. 2503(which)X
  667. 2733(would)X
  668. 2967(be)X
  669. 3077(obtained)X
  670. 3387(by)X
  671. 3501(running)X
  672. 3784(the)X
  673. 3916(transactions)X
  674. 555 3480(sequentially.)N
  675. 1002(Finally,)X
  676. 1268(durability)X
  677. 1599(requires)X
  678. 1878(that)X
  679. 2018(once)X
  680. 2190(transactions)X
  681. 2593(have)X
  682. 2765(been)X
  683. 2937(committed,)X
  684. 3319(their)X
  685. 3486(results)X
  686. 3715(must)X
  687. 3890(be)X
  688. 3986(preserved)X
  689. 555 3570(across)N
  690. 776(system)X
  691. 1018(failures)X
  692. 1279([TPCB90].)X
  693. 755 3693(Although)N
  694. 1080(these)X
  695. 1268(properties)X
  696. 1612(are)X
  697. 1734(most)X
  698. 1912(frequently)X
  699. 2265(discussed)X
  700. 2595(in)X
  701. 2680(the)X
  702. 2801(context)X
  703. 3060(of)X
  704. 3150(databases,)X
  705. 3501(they)X
  706. 3661(are)X
  707. 3782(useful)X
  708. 4000(program-)X
  709. 555 3783(ming)N
  710. 750(paradigms)X
  711. 1114(for)X
  712. 1238(more)X
  713. 1433(general)X
  714. 1700(purpose)X
  715. 1984(applications.)X
  716. 2441(There)X
  717. 2659(are)X
  718. 2788(several)X
  719. 3046(different)X
  720. 3353(situations)X
  721. 3689(where)X
  722. 3916(transactions)X
  723. 555 3873(can)N
  724. 687(be)X
  725. 783(used)X
  726. 950(to)X
  727. 1032(replace)X
  728. 1285(current)X
  729. 1533(ad-hoc)X
  730. 1772(mechanisms.)X
  731. 755 3996(One)N
  732. 910(situation)X
  733. 1206(is)X
  734. 1280(when)X
  735. 1475(multiple)X
  736. 1762(256les)X
  737. 1916(or)X
  738. 2004(parts)X
  739. 2181(of)X
  740. 2269(256les)X
  741. 2422(need)X
  742. 2594(to)X
  743. 2676(be)X
  744. 2772(updated)X
  745. 3046(in)X
  746. 3128(an)X
  747. 3224(atomic)X
  748. 3462(fashion.)X
  749. 3758(For)X
  750. 3889(example,)X
  751. 4201(the)X
  752. 555 4086(traditional)N
  753. 907(UNIX)X
  754. 1131(256le)X
  755. 1256(system)X
  756. 1501(uses)X
  757. 1661(ordering)X
  758. 1955(constraints)X
  759. 2324(to)X
  760. 2408(achieve)X
  761. 2676(recoverability)X
  762. 3144(in)X
  763. 3228(the)X
  764. 3348(face)X
  765. 3505(of)X
  766. 3594(crashes.)X
  767. 3893(When)X
  768. 4107(a)X
  769. 4165(new)X
  770. 555 4176(256le)N
  771. 678(is)X
  772. 752(created,)X
  773. 1026(its)X
  774. 1122(inode)X
  775. 1321(is)X
  776. 1395(written)X
  777. 1642(to)X
  778. 1724(disk)X
  779. 1877(before)X
  780. 2103(the)X
  781. 2221(new)X
  782. 2375(256le)X
  783. 2497(is)X
  784. 2570(added)X
  785. 2782(to)X
  786. 2864(the)X
  787. 2982(directory)X
  788. 3292(structure.)X
  789. 3633(This)X
  790. 3795(guarantees)X
  791. 4159(that,)X
  792. 555 4266(if)N
  793. 627(the)X
  794. 748(system)X
  795. 993(crashes)X
  796. 1253(between)X
  797. 1544(the)X
  798. 1665(two)X
  799. 1808(I/O's,)X
  800. 2016(the)X
  801. 2137(directory)X
  802. 2450(does)X
  803. 2620(not)X
  804. 2744(contain)X
  805. 3002(a)X
  806. 3060 0.4531(reference)AX
  807. 3383(to)X
  808. 3467(an)X
  809. 3565(invalid)X
  810. 3809(inode.)X
  811. 4049(In)X
  812. 4138(actu-)X
  813. 555 4356(ality,)N
  814. 741(the)X
  815. 863(desired)X
  816. 1119(effect)X
  817. 1326(is)X
  818. 1402(that)X
  819. 1545(these)X
  820. 1733(two)X
  821. 1876(updates)X
  822. 2144(have)X
  823. 2319(the)X
  824. 2440(transactional)X
  825. 2873(property)X
  826. 3168(of)X
  827. 3258(atomicity)X
  828. 3583((either)X
  829. 3816(both)X
  830. 3981(writes)X
  831. 4200(are)X
  832. 555 4446(visible)N
  833. 790(or)X
  834. 879(neither)X
  835. 1124(is).)X
  836. 1266(Rather)X
  837. 1501(than)X
  838. 1660(building)X
  839. 1947(special)X
  840. 2191(purpose)X
  841. 2466(recovery)X
  842. 2769(mechanisms)X
  843. 3186(into)X
  844. 3331(the)X
  845. 3450(256le)X
  846. 3573(system)X
  847. 3816(or)X
  848. 3904(related)X
  849. 4144(tools)X
  850. 555 4536(()N
  851. 2 f
  852. 582(e.g.)X
  853. 3 f
  854. 726(fsck)X
  855. 1 f
  856. 864((8)),)X
  857. 1033(one)X
  858. 1177(could)X
  859. 1383(use)X
  860. 1518(general)X
  861. 1783(purpose)X
  862. 2064(transaction)X
  863. 2443(recovery)X
  864. 2752(protocols)X
  865. 3077(after)X
  866. 3252(system)X
  867. 3501(failure.)X
  868. 3778(Any)X
  869. 3943(application)X
  870. 555 4626(that)N
  871. 705(needs)X
  872. 918(to)X
  873. 1010(keep)X
  874. 1192(multiple,)X
  875. 1508(related)X
  876. 1757(256les)X
  877. 1920((or)X
  878. 2044(directories))X
  879. 2440(consistent)X
  880. 2790(should)X
  881. 3032(do)X
  882. 3141(so)X
  883. 3241(using)X
  884. 3443(transactions.)X
  885. 3895(Source)X
  886. 4147(code)X
  887. 555 4716(control)N
  888. 805(systems,)X
  889. 1101(such)X
  890. 1271(as)X
  891. 1361(RCS)X
  892. 1534(and)X
  893. 1673(SCCS,)X
  894. 1910(should)X
  895. 2146(use)X
  896. 2276(transaction)X
  897. 2651(semantics)X
  898. 2990(to)X
  899. 3075(allow)X
  900. 3276(the)X
  901. 3397(``checking)X
  902. 3764(in'')X
  903. 3903(of)X
  904. 3992(groups)X
  905. 4232(of)X
  906. 555 4806(related)N
  907. 801(256les.)X
  908. 1001(In)X
  909. 1095(this)X
  910. 1237(way,)X
  911. 1418(if)X
  912. 1493(the)X
  913. 1617 0.2841(``check-in'')AX
  914. 2028(fails,)X
  915. 2212(the)X
  916. 2336(transaction)X
  917. 2714(may)X
  918. 2878(be)X
  919. 2980(aborted,)X
  920. 3267(backing)X
  921. 3547(out)X
  922. 3675(the)X
  923. 3799(partial)X
  924. 4030(``check-)X
  925. 555 4896(in'')N
  926. 691(leaving)X
  927. 947(the)X
  928. 1065(source)X
  929. 1295(repository)X
  930. 1640(in)X
  931. 1722(a)X
  932. 1778(consistent)X
  933. 2118(state.)X
  934. 755 5019(A)N
  935. 842(second)X
  936. 1094(situation)X
  937. 1398(where)X
  938. 1624(transactions)X
  939. 2036(can)X
  940. 2177(be)X
  941. 2282(used)X
  942. 2458(to)X
  943. 2549(replace)X
  944. 2811(current)X
  945. 3068(ad-hoc)X
  946. 3316(mechanisms)X
  947. 3741(is)X
  948. 3822(in)X
  949. 3912(applications)X
  950. 555 5109(where)N
  951. 776(concurrent)X
  952. 1144(updates)X
  953. 1413(to)X
  954. 1499(a)X
  955. 1559(shared)X
  956. 1793(256le)X
  957. 1919(are)X
  958. 2042(desired,)X
  959. 2318(but)X
  960. 2444(there)X
  961. 2629(is)X
  962. 2706(logical)X
  963. 2948(consistency)X
  964. 3345(of)X
  965. 3435(the)X
  966. 3556(data)X
  967. 3713(which)X
  968. 3932(needs)X
  969. 4138(to)X
  970. 4223(be)X
  971. 555 5199(preserved.)N
  972. 928(For)X
  973. 1059(example,)X
  974. 1371(when)X
  975. 1565(the)X
  976. 1683(password)X
  977. 2006(256le)X
  978. 2128(is)X
  979. 2201(updated,)X
  980. 2495(256le)X
  981. 2617(locking)X
  982. 2877(is)X
  983. 2950(used)X
  984. 3117(to)X
  985. 3199(disallow)X
  986. 3490(concurrent)X
  987. 3854(access.)X
  988. 4120(Tran-)X
  989. 555 5289(saction)N
  990. 804(semantics)X
  991. 1142(on)X
  992. 1244(the)X
  993. 1364(password)X
  994. 1689(256les)X
  995. 1844(would)X
  996. 2066(allow)X
  997. 2266(concurrent)X
  998. 2632(updates,)X
  999. 2919(while)X
  1000. 3119(preserving)X
  1001. 3479(the)X
  1002. 3598(logical)X
  1003. 3837(consistency)X
  1004. 4232(of)X
  1005. 555 5379(the)N
  1006. 681(password)X
  1007. 1012(database.)X
  1008. 1357(Similarly,)X
  1009. 1702(UNIX)X
  1010. 1930(utilities)X
  1011. 2196(which)X
  1012. 2419(rewrite)X
  1013. 2674(256les)X
  1014. 2834(face)X
  1015. 2996(a)X
  1016. 3059(potential)X
  1017. 3366(race)X
  1018. 3528(condition)X
  1019. 3857(between)X
  1020. 4152(their)X
  1021. 555 5469(rewriting)N
  1022. 871(a)X
  1023. 929(256le)X
  1024. 1053(and)X
  1025. 1191(another)X
  1026. 1453(process)X
  1027. 1715(reading)X
  1028. 1977(the)X
  1029. 2096(256le.)X
  1030. 2259(For)X
  1031. 2391(example,)X
  1032. 2704(the)X
  1033. 2823(compiler)X
  1034. 3129((more)X
  1035. 3342(precisely,)X
  1036. 3673(the)X
  1037. 3792(assembler))X
  1038. 4161(may)X
  1039. 8 s
  1040. 10 f
  1041. 555 5541(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)N
  1042. 5 s
  1043. 1 f
  1044. 727 5619(1)N
  1045. 8 s
  1046. 763 5644(To)N
  1047. 850(appear)X
  1048. 1035(in)X
  1049. 1101(the)X
  1050. 2 f
  1051. 1195(Proceedings)X
  1052. 1530(of)X
  1053. 1596(the)X
  1054. 1690(1992)X
  1055. 1834(Winter)X
  1056. 2024(Usenix)X
  1057. 1 f
  1058. 2201(,)X
  1059. 2233(San)X
  1060. 2345(Francisco,)X
  1061. 2625(CA,)X
  1062. 2746(January)X
  1063. 2960(1992.)X
  1064. 2 p
  1065. %%Page: 2 2
  1066. 8 s 8 xH 0 xS 1 f
  1067. 10 s
  1068. 3 f
  1069. 1 f
  1070. 555 630(have)N
  1071. 737(to)X
  1072. 829(rewrite)X
  1073. 1087(a)X
  1074. 1152(256le)X
  1075. 1283(to)X
  1076. 1374(which)X
  1077. 1599(it)X
  1078. 1672(has)X
  1079. 1808(write)X
  1080. 2002(permission)X
  1081. 2382(in)X
  1082. 2473(a)X
  1083. 2538(directory)X
  1084. 2857(to)X
  1085. 2948(which)X
  1086. 3173(it)X
  1087. 3246(does)X
  1088. 3422(not)X
  1089. 3553(have)X
  1090. 3734(write)X
  1091. 3928(permission.)X
  1092. 555 720(While)N
  1093. 779(the)X
  1094. 904(``.o'')X
  1095. 1099(256le)X
  1096. 1228(is)X
  1097. 1308(being)X
  1098. 1513(written,)X
  1099. 1787(another)X
  1100. 2055(utility)X
  1101. 2272(such)X
  1102. 2446(as)X
  1103. 3 f
  1104. 2540(nm)X
  1105. 1 f
  1106. 2651((1))X
  1107. 2772(or)X
  1108. 3 f
  1109. 2866(ar)X
  1110. 1 f
  1111. 2942((1))X
  1112. 3063(may)X
  1113. 3228(read)X
  1114. 3394(the)X
  1115. 3519(256le)X
  1116. 3648(and)X
  1117. 3791(produce)X
  1118. 4077(invalid)X
  1119. 555 810(results)N
  1120. 790(since)X
  1121. 981(the)X
  1122. 1105(256le)X
  1123. 1233(has)X
  1124. 1366(not)X
  1125. 1494(been)X
  1126. 1672(completely)X
  1127. 2054(written.)X
  1128. 2347(Currently,)X
  1129. 2700(some)X
  1130. 2895(utilities)X
  1131. 3160(use)X
  1132. 3293(special)X
  1133. 3542(purpose)X
  1134. 3821(code)X
  1135. 3998(to)X
  1136. 4085(handle)X
  1137. 555 900(such)N
  1138. 722(cases)X
  1139. 912(while)X
  1140. 1110(others)X
  1141. 1326(ignore)X
  1142. 1551(the)X
  1143. 1669(problem)X
  1144. 1956(and)X
  1145. 2092(force)X
  1146. 2278(users)X
  1147. 2463(to)X
  1148. 2545(live)X
  1149. 2685(with)X
  1150. 2847(the)X
  1151. 2965(consequences.)X
  1152. 755 1023(In)N
  1153. 845(this)X
  1154. 983(paper,)X
  1155. 1205(we)X
  1156. 1322(present)X
  1157. 1577(a)X
  1158. 1635(simple)X
  1159. 1870(library)X
  1160. 2106(which)X
  1161. 2324(provides)X
  1162. 2622(transaction)X
  1163. 2996(semantics)X
  1164. 3334((atomicity,)X
  1165. 3705(consistency,)X
  1166. 4121(isola-)X
  1167. 555 1113(tion,)N
  1168. 720(and)X
  1169. 857(durability).)X
  1170. 1236(The)X
  1171. 1382(4.4BSD)X
  1172. 1658(database)X
  1173. 1956(access)X
  1174. 2182(methods)X
  1175. 2473(have)X
  1176. 2645(been)X
  1177. 2817(modi256ed)X
  1178. 3121(to)X
  1179. 3203(use)X
  1180. 3330(this)X
  1181. 3465(library,)X
  1182. 3719(optionally)X
  1183. 4063(provid-)X
  1184. 555 1203(ing)N
  1185. 682(shared)X
  1186. 917(buffer)X
  1187. 1139(management)X
  1188. 1574(between)X
  1189. 1867(applications,)X
  1190. 2298(locking,)X
  1191. 2582(and)X
  1192. 2722(transaction)X
  1193. 3098(semantics.)X
  1194. 3478(Any)X
  1195. 3640(UNIX)X
  1196. 3865(program)X
  1197. 4161(may)X
  1198. 555 1293(transaction)N
  1199. 930(protect)X
  1200. 1176(its)X
  1201. 1274(data)X
  1202. 1430(by)X
  1203. 1532(requesting)X
  1204. 1888(transaction)X
  1205. 2262(protection)X
  1206. 2609(with)X
  1207. 2773(the)X
  1208. 3 f
  1209. 2893(db)X
  1210. 1 f
  1211. 2981((3))X
  1212. 3097(library)X
  1213. 3333(or)X
  1214. 3422(by)X
  1215. 3524(adding)X
  1216. 3764(appropriate)X
  1217. 4152(calls)X
  1218. 555 1383(to)N
  1219. 646(the)X
  1220. 773(transaction)X
  1221. 1154(manager,)X
  1222. 1480(buffer)X
  1223. 1706(manager,)X
  1224. 2032(lock)X
  1225. 2199(manager,)X
  1226. 2525(and)X
  1227. 2670(log)X
  1228. 2801(manager.)X
  1229. 3147(The)X
  1230. 3301(library)X
  1231. 3543(routines)X
  1232. 3829(may)X
  1233. 3995(be)X
  1234. 4099(linked)X
  1235. 555 1473(into)N
  1236. 708(the)X
  1237. 834(host)X
  1238. 995(application)X
  1239. 1379(and)X
  1240. 1523(called)X
  1241. 1743(by)X
  1242. 1851(subroutine)X
  1243. 2217(interface,)X
  1244. 2547(or)X
  1245. 2642(they)X
  1246. 2808(may)X
  1247. 2974(reside)X
  1248. 3194(in)X
  1249. 3284(a)X
  1250. 3348(separate)X
  1251. 3640(server)X
  1252. 3865(process.)X
  1253. 4174(The)X
  1254. 555 1563(server)N
  1255. 772(architecture)X
  1256. 1172(provides)X
  1257. 1468(for)X
  1258. 1582(network)X
  1259. 1865(access)X
  1260. 2091(and)X
  1261. 2227(better)X
  1262. 2430(protection)X
  1263. 2775(mechanisms.)X
  1264. 3 f
  1265. 555 1749(2.)N
  1266. 655(Related)X
  1267. 938(Work)X
  1268. 1 f
  1269. 755 1872(There)N
  1270. 1000(has)X
  1271. 1164(been)X
  1272. 1373(much)X
  1273. 1608(discussion)X
  1274. 1998(in)X
  1275. 2117(recent)X
  1276. 2371(years)X
  1277. 2597(about)X
  1278. 2831(new)X
  1279. 3021(transaction)X
  1280. 3429(models)X
  1281. 3716(and)X
  1282. 3888(architectures)X
  1283. 555 1962 0.1172([SPEC88][NODI90][CHEN91][MOHA91].)AN
  1284. 2009(Much)X
  1285. 2220(of)X
  1286. 2310(this)X
  1287. 2448(work)X
  1288. 2636(focuses)X
  1289. 2900(on)X
  1290. 3003(new)X
  1291. 3160(ways)X
  1292. 3348(to)X
  1293. 3433(model)X
  1294. 3656(transactions)X
  1295. 4062(and)X
  1296. 4201(the)X
  1297. 555 2052(interactions)N
  1298. 953(between)X
  1299. 1245(them,)X
  1300. 1449(while)X
  1301. 1651(the)X
  1302. 1772(work)X
  1303. 1960(presented)X
  1304. 2291(here)X
  1305. 2453(focuses)X
  1306. 2717(on)X
  1307. 2820(the)X
  1308. 2941(implementation)X
  1309. 3466(and)X
  1310. 3605(performance)X
  1311. 4035(of)X
  1312. 4125(tradi-)X
  1313. 555 2142(tional)N
  1314. 757(transaction)X
  1315. 1129(techniques)X
  1316. 1492((write-ahead)X
  1317. 1919(logging)X
  1318. 2183(and)X
  1319. 2319(two-phase)X
  1320. 2669(locking))X
  1321. 2956(on)X
  1322. 3056(a)X
  1323. 3112(standard)X
  1324. 3404(operating)X
  1325. 3727(system)X
  1326. 3969((UNIX).)X
  1327. 755 2265(Such)N
  1328. 947(traditional)X
  1329. 1308(operating)X
  1330. 1643(systems)X
  1331. 1928(are)X
  1332. 2059(often)X
  1333. 2256(criticized)X
  1334. 2587(for)X
  1335. 2713(their)X
  1336. 2892(inability)X
  1337. 3190(to)X
  1338. 3283(perform)X
  1339. 3573(transaction)X
  1340. 3956(processing)X
  1341. 555 2355(adequately.)N
  1342. 971([STON81])X
  1343. 1342(cites)X
  1344. 1517(three)X
  1345. 1706(main)X
  1346. 1894(areas)X
  1347. 2088(of)X
  1348. 2183(inadequate)X
  1349. 2559(support:)X
  1350. 2849(buffer)X
  1351. 3074(management,)X
  1352. 3532(the)X
  1353. 3658(256le)X
  1354. 3788(system,)X
  1355. 4058(and)X
  1356. 4201(the)X
  1357. 555 2445(process)N
  1358. 823(structure.)X
  1359. 1191(These)X
  1360. 1410(arguments)X
  1361. 1771(are)X
  1362. 1897(summarized)X
  1363. 2316(in)X
  1364. 2405(table)X
  1365. 2587(one.)X
  1366. 2769(Fortunately,)X
  1367. 3184(much)X
  1368. 3388(has)X
  1369. 3521(changed)X
  1370. 3815(since)X
  1371. 4006(1981.)X
  1372. 4232(In)X
  1373. 555 2535(the)N
  1374. 683(area)X
  1375. 848(of)X
  1376. 945(buffer)X
  1377. 1172(management,)X
  1378. 1632(most)X
  1379. 1817(UNIX)X
  1380. 2048(systems)X
  1381. 2331(provide)X
  1382. 2606(the)X
  1383. 2734(ability)X
  1384. 2968(to)X
  1385. 3060(memory)X
  1386. 3357(map)X
  1387. 3525(256les,)X
  1388. 3708(thus)X
  1389. 3870(obviating)X
  1390. 4201(the)X
  1391. 555 2625(need)N
  1392. 734(for)X
  1393. 855(a)X
  1394. 918(copy)X
  1395. 1101(between)X
  1396. 1396(kernel)X
  1397. 1624(and)X
  1398. 1766(user)X
  1399. 1926(space.)X
  1400. 2171(If)X
  1401. 2251(a)X
  1402. 2313(database)X
  1403. 2616(system)X
  1404. 2864(is)X
  1405. 2943(going)X
  1406. 3151(to)X
  1407. 3239(use)X
  1408. 3372(the)X
  1409. 3496(256le)X
  1410. 3624(system)X
  1411. 3872(buffer)X
  1412. 4095(cache,)X
  1413. 555 2715(then)N
  1414. 719(a)X
  1415. 781(system)X
  1416. 1029(call)X
  1417. 1171(is)X
  1418. 1250(required.)X
  1419. 1584(However,)X
  1420. 1924(if)X
  1421. 1998(buffering)X
  1422. 2322(is)X
  1423. 2400(provided)X
  1424. 2710(at)X
  1425. 2793(user)X
  1426. 2952(level)X
  1427. 3133(using)X
  1428. 3331(shared)X
  1429. 3566(memory,)X
  1430. 3878(as)X
  1431. 3970(in)X
  1432. 4057(LIBTP,)X
  1433. 555 2805(buffer)N
  1434. 776(management)X
  1435. 1210(is)X
  1436. 1287(only)X
  1437. 1452(as)X
  1438. 1542(slow)X
  1439. 1716(as)X
  1440. 1806(access)X
  1441. 2035(to)X
  1442. 2120(shared)X
  1443. 2353(memory)X
  1444. 2643(and)X
  1445. 2782(any)X
  1446. 2921(replacement)X
  1447. 3337(algorithm)X
  1448. 3671(may)X
  1449. 3832(be)X
  1450. 3931(used.)X
  1451. 4121(Since)X
  1452. 555 2895(multiple)N
  1453. 849(processes)X
  1454. 1185(can)X
  1455. 1325(access)X
  1456. 1559(the)X
  1457. 1685(shared)X
  1458. 1923(data,)X
  1459. 2105(prefetching)X
  1460. 2499(may)X
  1461. 2665(be)X
  1462. 2769(accomplished)X
  1463. 3238(by)X
  1464. 3346(separate)X
  1465. 3638(processes)X
  1466. 3973(or)X
  1467. 4067(threads)X
  1468. 555 2985(whose)N
  1469. 782(sole)X
  1470. 932(purpose)X
  1471. 1207(is)X
  1472. 1281(to)X
  1473. 1364(prefetch)X
  1474. 1649(pages)X
  1475. 1853(and)X
  1476. 1990(wait)X
  1477. 2149(on)X
  1478. 2250(them.)X
  1479. 2471(There)X
  1480. 2680(is)X
  1481. 2754(still)X
  1482. 2894(no)X
  1483. 2995(way)X
  1484. 3150(to)X
  1485. 3233(enforce)X
  1486. 3496(write)X
  1487. 3682(ordering)X
  1488. 3975(other)X
  1489. 4161(than)X
  1490. 555 3075(keeping)N
  1491. 829(pages)X
  1492. 1032(in)X
  1493. 1114(user)X
  1494. 1268(memory)X
  1495. 1555(and)X
  1496. 1691(using)X
  1497. 1884(the)X
  1498. 3 f
  1499. 2002(fsync)X
  1500. 1 f
  1501. 2180((3))X
  1502. 2294(system)X
  1503. 2536(call)X
  1504. 2672(to)X
  1505. 2754(perform)X
  1506. 3033(synchronous)X
  1507. 3458(writes.)X
  1508. 755 3198(In)N
  1509. 845(the)X
  1510. 966(area)X
  1511. 1124(of)X
  1512. 1214(256le)X
  1513. 1339(systems,)X
  1514. 1635(the)X
  1515. 1756(fast)X
  1516. 1895(256le)X
  1517. 2020(system)X
  1518. 2265((FFS))X
  1519. 2474([MCKU84])X
  1520. 2871(allows)X
  1521. 3103(allocation)X
  1522. 3442(in)X
  1523. 3527(units)X
  1524. 3704(up)X
  1525. 3806(to)X
  1526. 3890(64KBytes)X
  1527. 4232(as)X
  1528. 555 3288(opposed)N
  1529. 846(to)X
  1530. 932(the)X
  1531. 1054(4KByte)X
  1532. 1327(and)X
  1533. 1466(8KByte)X
  1534. 1738(256gures)X
  1535. 1979(quoted)X
  1536. 2220(in)X
  1537. 2305([STON81].)X
  1538. 2711(The)X
  1539. 2859(measurements)X
  1540. 3341(in)X
  1541. 3426(this)X
  1542. 3564(paper)X
  1543. 3766(were)X
  1544. 3946(taken)X
  1545. 4143(from)X
  1546. 555 3378(an)N
  1547. 655(8KByte)X
  1548. 928(FFS,)X
  1549. 1104(but)X
  1550. 1230(as)X
  1551. 1320(LIBTP)X
  1552. 1565(runs)X
  1553. 1726(exclusively)X
  1554. 2114(in)X
  1555. 2199(user)X
  1556. 2356(space,)X
  1557. 2578(there)X
  1558. 2762(is)X
  1559. 2838(nothing)X
  1560. 3105(to)X
  1561. 3190(prevent)X
  1562. 3454(it)X
  1563. 3521(from)X
  1564. 3700(being)X
  1565. 3901(run)X
  1566. 4031(on)X
  1567. 4134(other)X
  1568. 555 3468(UNIX)N
  1569. 776(compatible)X
  1570. 1152(256le)X
  1571. 1274(systems)X
  1572. 1547((e.g.)X
  1573. 1710(log-structured)X
  1574. 2180([ROSE91],)X
  1575. 2558(extent-based,)X
  1576. 3004(or)X
  1577. 3091(multi-block)X
  1578. 3484([SELT91]).)X
  1579. 755 3591(Finally,)N
  1580. 1029(with)X
  1581. 1199(regard)X
  1582. 1433(to)X
  1583. 1523(the)X
  1584. 1648(process)X
  1585. 1916(structure,)X
  1586. 2244(neither)X
  1587. 2494(context)X
  1588. 2757(switch)X
  1589. 2993(time)X
  1590. 3162(nor)X
  1591. 3296(scheduling)X
  1592. 3670(around)X
  1593. 3920(semaphores)X
  1594. 555 3681(seems)N
  1595. 785(to)X
  1596. 881(affect)X
  1597. 1099(the)X
  1598. 1231(system)X
  1599. 1487(performance.)X
  1600. 1968(However,)X
  1601. 2317(the)X
  1602. 2449(implementation)X
  1603. 2984(of)X
  1604. 3084(semaphores)X
  1605. 3496(can)X
  1606. 3641(impact)X
  1607. 3892(performance)X
  1608. 555 3771(tremendously.)N
  1609. 1051(This)X
  1610. 1213(is)X
  1611. 1286(discussed)X
  1612. 1613(in)X
  1613. 1695(more)X
  1614. 1880(detail)X
  1615. 2078(in)X
  1616. 2160(section)X
  1617. 2407(4.3.)X
  1618. 755 3894(The)N
  1619. 908(Tuxedo)X
  1620. 1181(system)X
  1621. 1431(from)X
  1622. 1615(AT&T)X
  1623. 1861(is)X
  1624. 1941(a)X
  1625. 2004(transaction)X
  1626. 2383(manager)X
  1627. 2687(which)X
  1628. 2910(coordinates)X
  1629. 3307(distributed)X
  1630. 3676(transaction)X
  1631. 4055(commit)X
  1632. 555 3984(from)N
  1633. 738(a)X
  1634. 801(variety)X
  1635. 1051(of)X
  1636. 1145(different)X
  1637. 1449(local)X
  1638. 1632(transaction)X
  1639. 2011(managers.)X
  1640. 2386(At)X
  1641. 2493(this)X
  1642. 2634(time,)X
  1643. 2822(LIBTP)X
  1644. 3070(does)X
  1645. 3243(not)X
  1646. 3371(have)X
  1647. 3549(its)X
  1648. 3650(own)X
  1649. 3814(mechanism)X
  1650. 4205(for)X
  1651. 555 4074(distributed)N
  1652. 942(commit)X
  1653. 1231(processing,)X
  1654. 1639(but)X
  1655. 1786(could)X
  1656. 2009(be)X
  1657. 2130(used)X
  1658. 2322(as)X
  1659. 2434(a)X
  1660. 2515(local)X
  1661. 2716(transaction)X
  1662. 3113(agent)X
  1663. 3331(by)X
  1664. 3455(systems)X
  1665. 3752(such)X
  1666. 3943(as)X
  1667. 4054(Tuxedo)X
  1668. 555 4164([ANDR89].)N
  1669. 10 f
  1670. 863 4393(i)N
  1671. 870(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
  1672. 1 f
  1673. 903 4483(Buffer)N
  1674. 1133(Management)X
  1675. 10 f
  1676. 1672(g)X
  1677. 1 f
  1678. 1720(Data)X
  1679. 1892(must)X
  1680. 2067(be)X
  1681. 2163(copied)X
  1682. 2397(between)X
  1683. 2685(kernel)X
  1684. 2906(space)X
  1685. 3105(and)X
  1686. 3241(user)X
  1687. 3395(space.)X
  1688. 10 f
  1689. 1672 4573(g)N
  1690. 1 f
  1691. 1720(Buffer)X
  1692. 1950(pool)X
  1693. 2112(access)X
  1694. 2338(is)X
  1695. 2411(too)X
  1696. 2533(slow.)X
  1697. 10 f
  1698. 1672 4663(g)N
  1699. 1 f
  1700. 1720(There)X
  1701. 1928(is)X
  1702. 2001(no)X
  1703. 2101(way)X
  1704. 2255(to)X
  1705. 2337(request)X
  1706. 2589(prefetch.)X
  1707. 10 f
  1708. 1672 4753(g)N
  1709. 1 f
  1710. 1720(Replacement)X
  1711. 2159(is)X
  1712. 2232(usually)X
  1713. 2483(LRU)X
  1714. 2663(which)X
  1715. 2879(may)X
  1716. 3037(be)X
  1717. 3133(suboptimal)X
  1718. 3508(for)X
  1719. 3622(databases.)X
  1720. 10 f
  1721. 1672 4843(g)N
  1722. 1 f
  1723. 1720(There)X
  1724. 1928(is)X
  1725. 2001(no)X
  1726. 2101(way)X
  1727. 2255(to)X
  1728. 2337(guarantee)X
  1729. 2670(write)X
  1730. 2855(ordering.)X
  1731. 10 f
  1732. 863 4853(i)N
  1733. 870(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
  1734. 1 f
  1735. 903 4943(File)N
  1736. 1047(System)X
  1737. 10 f
  1738. 1672(g)X
  1739. 1 f
  1740. 1720(Allocation)X
  1741. 2078(is)X
  1742. 2151(done)X
  1743. 2327(in)X
  1744. 2409(small)X
  1745. 2602(blocks)X
  1746. 2831((usually)X
  1747. 3109(4K)X
  1748. 3227(or)X
  1749. 3314(8K).)X
  1750. 10 f
  1751. 1672 5033(g)N
  1752. 1 f
  1753. 1720(Logical)X
  1754. 1985(organization)X
  1755. 2406(of)X
  1756. 2493(256les)X
  1757. 2646(is)X
  1758. 2719(redundantly)X
  1759. 3122(expressed.)X
  1760. 10 f
  1761. 863 5043(i)N
  1762. 870(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
  1763. 1 f
  1764. 903 5133(Process)N
  1765. 1168(Structure)X
  1766. 10 f
  1767. 1672(g)X
  1768. 1 f
  1769. 1720(Context)X
  1770. 1993(switching)X
  1771. 2324(and)X
  1772. 2460(message)X
  1773. 2752(passing)X
  1774. 3012(are)X
  1775. 3131(too)X
  1776. 3253(slow.)X
  1777. 10 f
  1778. 1672 5223(g)N
  1779. 1 f
  1780. 1720(A)X
  1781. 1798(process)X
  1782. 2059(may)X
  1783. 2217(be)X
  1784. 2313(descheduled)X
  1785. 2730(while)X
  1786. 2928(holding)X
  1787. 3192(a)X
  1788. 3248(semaphore.)X
  1789. 10 f
  1790. 863 5233(i)N
  1791. 870(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
  1792. 863(c)X
  1793. 5193(c)Y
  1794. 5113(c)Y
  1795. 5033(c)Y
  1796. 4953(c)Y
  1797. 4873(c)Y
  1798. 4793(c)Y
  1799. 4713(c)Y
  1800. 4633(c)Y
  1801. 4553(c)Y
  1802. 4473(c)Y
  1803. 3990 5233(c)N
  1804. 5193(c)Y
  1805. 5113(c)Y
  1806. 5033(c)Y
  1807. 4953(c)Y
  1808. 4873(c)Y
  1809. 4793(c)Y
  1810. 4713(c)Y
  1811. 4633(c)Y
  1812. 4553(c)Y
  1813. 4473(c)Y
  1814. 3 f
  1815. 1156 5446(Table)N
  1816. 1371(One:)X
  1817. 1560(Shortcomings)X
  1818. 2051(of)X
  1819. 2138(UNIX)X
  1820. 2363(transaction)X
  1821. 2770(support)X
  1822. 3056(cited)X
  1823. 3241(in)X
  1824. 3327([STON81].)X
  1825. 3 p
  1826. %%Page: 3 3
  1827. 10 s 10 xH 0 xS 3 f
  1828. 1 f
  1829. 755 630(The)N
  1830. 901(transaction)X
  1831. 1274(architecture)X
  1832. 1675(presented)X
  1833. 2004(in)X
  1834. 2087([YOUN91])X
  1835. 2474(is)X
  1836. 2548(very)X
  1837. 2712(similar)X
  1838. 2955(to)X
  1839. 3038(that)X
  1840. 3179(implemented)X
  1841. 3618(in)X
  1842. 3701(the)X
  1843. 3820(LIBTP.)X
  1844. 4103(While)X
  1845. 555 720([YOUN91])N
  1846. 947(presents)X
  1847. 1236(a)X
  1848. 1298(model)X
  1849. 1524(for)X
  1850. 1644(providing)X
  1851. 1981(transaction)X
  1852. 2359(services,)X
  1853. 2663(this)X
  1854. 2803(paper)X
  1855. 3007(focuses)X
  1856. 3273(on)X
  1857. 3378(the)X
  1858. 3501(implementation)X
  1859. 4028(and)X
  1860. 4169(per-)X
  1861. 555 810(formance)N
  1862. 881(of)X
  1863. 970(a)X
  1864. 1028(particular)X
  1865. 1358(system.)X
  1866. 1642(In)X
  1867. 1731(addition,)X
  1868. 2034(we)X
  1869. 2149(provide)X
  1870. 2415(detailed)X
  1871. 2690(comparisons)X
  1872. 3116(with)X
  1873. 3279(alternative)X
  1874. 3639(solutions:)X
  1875. 3970(traditional)X
  1876. 555 900(UNIX)N
  1877. 776(services)X
  1878. 1055(and)X
  1879. 1191(commercial)X
  1880. 1590(database)X
  1881. 1887(management)X
  1882. 2317(systems.)X
  1883. 3 f
  1884. 555 1086(3.)N
  1885. 655(Architecture)X
  1886. 1 f
  1887. 755 1209(The)N
  1888. 906(library)X
  1889. 1146(is)X
  1890. 1224(designed)X
  1891. 1534(to)X
  1892. 1621(provide)X
  1893. 1891(well)X
  1894. 2054(de256ned)X
  1895. 2315(interfaces)X
  1896. 2653(to)X
  1897. 2740(the)X
  1898. 2863(services)X
  1899. 3147(required)X
  1900. 3440(for)X
  1901. 3559(transaction)X
  1902. 3936(processing.)X
  1903. 555 1299(These)N
  1904. 777(services)X
  1905. 1066(are)X
  1906. 1195(recovery,)X
  1907. 1527(concurrency)X
  1908. 1955(control,)X
  1909. 2232(and)X
  1910. 2378(the)X
  1911. 2506(management)X
  1912. 2946(of)X
  1913. 3043(shared)X
  1914. 3283(data.)X
  1915. 3487(First)X
  1916. 3663(we)X
  1917. 3787(will)X
  1918. 3941(discuss)X
  1919. 4201(the)X
  1920. 555 1389(design)N
  1921. 795(tradeoffs)X
  1922. 1112(in)X
  1923. 1205(the)X
  1924. 1334(selection)X
  1925. 1650(of)X
  1926. 1748(recovery,)X
  1927. 2081(concurrency)X
  1928. 2510(control,)X
  1929. 2787(and)X
  1930. 2933(buffer)X
  1931. 3160(management)X
  1932. 3600(implementations,)X
  1933. 4183(and)X
  1934. 555 1479(then)N
  1935. 713(we)X
  1936. 827(will)X
  1937. 971(present)X
  1938. 1223(the)X
  1939. 1341(overall)X
  1940. 1584(library)X
  1941. 1818(architecture)X
  1942. 2218(and)X
  1943. 2354(module)X
  1944. 2614(descriptions.)X
  1945. 3 f
  1946. 555 1665(3.1.)N
  1947. 715(Design)X
  1948. 966(Tradeoffs)X
  1949. 1 f
  1950. 3 f
  1951. 555 1851(3.1.1.)N
  1952. 775(Crash)X
  1953. 1004(Recovery)X
  1954. 1 f
  1955. 755 1974(The)N
  1956. 909(recovery)X
  1957. 1220(protocol)X
  1958. 1516(is)X
  1959. 1598(responsible)X
  1960. 1992(for)X
  1961. 2115(providing)X
  1962. 2455(the)X
  1963. 2582(transaction)X
  1964. 2963(semantics)X
  1965. 3308(discussed)X
  1966. 3644(earlier.)X
  1967. 3919(There)X
  1968. 4136(are)X
  1969. 4263(a)X
  1970. 555 2064(wide)N
  1971. 739(range)X
  1972. 946(of)X
  1973. 1041(recovery)X
  1974. 1351(protocols)X
  1975. 1677(available)X
  1976. 1995([HAER83],)X
  1977. 2395(but)X
  1978. 2525(we)X
  1979. 2647(can)X
  1980. 2786(crudely)X
  1981. 3054(divide)X
  1982. 3281(them)X
  1983. 3468(into)X
  1984. 3619(two)X
  1985. 3766(main)X
  1986. 3953(categories.)X
  1987. 555 2154(The)N
  1988. 706(256rst)X
  1989. 856(category)X
  1990. 1159(records)X
  1991. 1422(all)X
  1992. 1528(modi256cations)X
  1993. 1989(to)X
  1994. 2077(the)X
  1995. 2201(database)X
  1996. 2504(in)X
  1997. 2592(a)X
  1998. 2653(separate)X
  1999. 2942(256le,)X
  2000. 3089(and)X
  2001. 3230(uses)X
  2002. 3393(this)X
  2003. 3533(256le)X
  2004. 3660((log))X
  2005. 3841(to)X
  2006. 3928(back)X
  2007. 4105(out)X
  2008. 4232(or)X
  2009. 555 2244(reapply)N
  2010. 825(these)X
  2011. 1019(modi256cations)X
  2012. 1483(if)X
  2013. 1561(a)X
  2014. 1626(transaction)X
  2015. 2007(aborts)X
  2016. 2232(or)X
  2017. 2328(the)X
  2018. 2455(system)X
  2019. 2706(crashes.)X
  2020. 3012(We)X
  2021. 3153(call)X
  2022. 3298(this)X
  2023. 3442(set)X
  2024. 3560(the)X
  2025. 3 f
  2026. 3687(logging)X
  2027. 3963(protocols)X
  2028. 1 f
  2029. 4279(.)X
  2030. 555 2334(The)N
  2031. 703(second)X
  2032. 949(category)X
  2033. 1249(avoids)X
  2034. 1481(the)X
  2035. 1602(use)X
  2036. 1732(of)X
  2037. 1822(a)X
  2038. 1881(log)X
  2039. 2006(by)X
  2040. 2109(carefully)X
  2041. 2418(controlling)X
  2042. 2792(when)X
  2043. 2989(data)X
  2044. 3146(are)X
  2045. 3268(written)X
  2046. 3518(to)X
  2047. 3603(disk.)X
  2048. 3799(We)X
  2049. 3934(call)X
  2050. 4073(this)X
  2051. 4210(set)X
  2052. 555 2424(the)N
  2053. 3 f
  2054. 673(non-logging)X
  2055. 1096(protocols)X
  2056. 1 f
  2057. 1412(.)X
  2058. 755 2547(Non-logging)N
  2059. 1185(protocols)X
  2060. 1504(hold)X
  2061. 1666(dirty)X
  2062. 1837(buffers)X
  2063. 2085(in)X
  2064. 2167(main)X
  2065. 2347(memory)X
  2066. 2634(or)X
  2067. 2721(temporary)X
  2068. 3071(256les)X
  2069. 3224(until)X
  2070. 3390(commit)X
  2071. 3654(and)X
  2072. 3790(then)X
  2073. 3948(force)X
  2074. 4134(these)X
  2075. 555 2637(pages)N
  2076. 769(to)X
  2077. 862(disk)X
  2078. 1026(at)X
  2079. 1115(transaction)X
  2080. 1498(commit.)X
  2081. 1813(While)X
  2082. 2040(we)X
  2083. 2165(can)X
  2084. 2308(use)X
  2085. 2446(temporary)X
  2086. 2807(256les)X
  2087. 2971(to)X
  2088. 3064(hold)X
  2089. 3237(dirty)X
  2090. 3418(pages)X
  2091. 3631(that)X
  2092. 3781(may)X
  2093. 3949(need)X
  2094. 4131(to)X
  2095. 4223(be)X
  2096. 555 2727(evicted)N
  2097. 810(from)X
  2098. 988(memory)X
  2099. 1277(during)X
  2100. 1508(a)X
  2101. 1566(long-running)X
  2102. 2006(transaction,)X
  2103. 2400(the)X
  2104. 2520(only)X
  2105. 2684(user-level)X
  2106. 3023(mechanism)X
  2107. 3410(to)X
  2108. 3494(force)X
  2109. 3682(pages)X
  2110. 3887(to)X
  2111. 3971(disk)X
  2112. 4126(is)X
  2113. 4201(the)X
  2114. 3 f
  2115. 555 2817(fsync)N
  2116. 1 f
  2117. 733((2))X
  2118. 850(system)X
  2119. 1095(call.)X
  2120. 1274(Unfortunately,)X
  2121. 3 f
  2122. 1767(fsync)X
  2123. 1 f
  2124. 1945((2))X
  2125. 2062(is)X
  2126. 2138(an)X
  2127. 2237(expensive)X
  2128. 2581(system)X
  2129. 2826(call)X
  2130. 2965(in)X
  2131. 3050(that)X
  2132. 3193(it)X
  2133. 3260(forces)X
  2134. 3480(all)X
  2135. 3583(pages)X
  2136. 3789(of)X
  2137. 3879(a)X
  2138. 3938(256le)X
  2139. 4062(to)X
  2140. 4146(disk,)X
  2141. 555 2907(and)N
  2142. 691(transactions)X
  2143. 1094(that)X
  2144. 1234(manage)X
  2145. 1504(more)X
  2146. 1689(than)X
  2147. 1847(one)X
  2148. 1983(256le)X
  2149. 2105(must)X
  2150. 2280(issue)X
  2151. 2460(one)X
  2152. 2596(call)X
  2153. 2732(per)X
  2154. 2855(256le.)X
  2155. 755 3030(In)N
  2156. 853(addition,)X
  2157. 3 f
  2158. 1166(fsync)X
  2159. 1 f
  2160. 1344((2))X
  2161. 1469(provides)X
  2162. 1776(no)X
  2163. 1887(way)X
  2164. 2051(to)X
  2165. 2143(control)X
  2166. 2400(the)X
  2167. 2528(order)X
  2168. 2728(in)X
  2169. 2820(which)X
  2170. 3046(dirty)X
  2171. 3227(pages)X
  2172. 3440(are)X
  2173. 3569(written)X
  2174. 3826(to)X
  2175. 3918(disk.)X
  2176. 4121(Since)X
  2177. 555 3120(non-logging)N
  2178. 976(protocols)X
  2179. 1304(must)X
  2180. 1489(sometimes)X
  2181. 1861(order)X
  2182. 2061(writes)X
  2183. 2287(carefully)X
  2184. 2603([SULL92],)X
  2185. 2987(they)X
  2186. 3155(are)X
  2187. 3284(dif256cult)X
  2188. 3567(to)X
  2189. 3659(implement)X
  2190. 4030(on)X
  2191. 4139(Unix)X
  2192. 555 3210(systems.)N
  2193. 868(As)X
  2194. 977(a)X
  2195. 1033(result,)X
  2196. 1251(we)X
  2197. 1365(have)X
  2198. 1537(chosen)X
  2199. 1780(to)X
  2200. 1862(implement)X
  2201. 2224(a)X
  2202. 2280(logging)X
  2203. 2544(protocol.)X
  2204. 755 3333(Logging)N
  2205. 1050(protocols)X
  2206. 1372(may)X
  2207. 1534(be)X
  2208. 1634(categorized)X
  2209. 2029(based)X
  2210. 2236(on)X
  2211. 2340(how)X
  2212. 2502(information)X
  2213. 2904(is)X
  2214. 2981(logged)X
  2215. 3223((physically)X
  2216. 3602(or)X
  2217. 3692(logically))X
  2218. 4022(and)X
  2219. 4161(how)X
  2220. 555 3423(much)N
  2221. 767(is)X
  2222. 854(logged)X
  2223. 1106((before)X
  2224. 1373(images,)X
  2225. 1654(after)X
  2226. 1836(images)X
  2227. 2097(or)X
  2228. 2198(both).)X
  2229. 2441(In)X
  2230. 3 f
  2231. 2542(physical)X
  2232. 2855(logging)X
  2233. 1 f
  2234. 3103(,)X
  2235. 3157(images)X
  2236. 3417(of)X
  2237. 3517(complete)X
  2238. 3844(physical)X
  2239. 4144(units)X
  2240. 555 3513((pages)N
  2241. 786(or)X
  2242. 874(buffers))X
  2243. 1150(are)X
  2244. 1270(recorded,)X
  2245. 1593(while)X
  2246. 1792(in)X
  2247. 3 f
  2248. 1875(logical)X
  2249. 2118(logging)X
  2250. 1 f
  2251. 2387(a)X
  2252. 2444(description)X
  2253. 2820(of)X
  2254. 2907(the)X
  2255. 3025(operation)X
  2256. 3348(is)X
  2257. 3421(recorded.)X
  2258. 3763(Therefore,)X
  2259. 4121(while)X
  2260. 555 3603(we)N
  2261. 675(may)X
  2262. 839(record)X
  2263. 1071(entire)X
  2264. 1280(pages)X
  2265. 1489(in)X
  2266. 1577(a)X
  2267. 1639(physical)X
  2268. 1932(log,)X
  2269. 2080(we)X
  2270. 2200(need)X
  2271. 2378(only)X
  2272. 2546(record)X
  2273. 2777(the)X
  2274. 2900(records)X
  2275. 3162(being)X
  2276. 3365(modi256ed)X
  2277. 3674(in)X
  2278. 3761(a)X
  2279. 3822(logical)X
  2280. 4065(log.)X
  2281. 4232(In)X
  2282. 555 3693(fact,)N
  2283. 718(physical)X
  2284. 1006(logging)X
  2285. 1271(can)X
  2286. 1404(be)X
  2287. 1501(thought)X
  2288. 1766(of)X
  2289. 1854(as)X
  2290. 1942(a)X
  2291. 1999(special)X
  2292. 2243(case)X
  2293. 2403(of)X
  2294. 2491(logical)X
  2295. 2730(logging,)X
  2296. 3015(since)X
  2297. 3201(the)X
  2298. 3320 0.3125(``records'')AX
  2299. 3686(that)X
  2300. 3827(we)X
  2301. 3942(log)X
  2302. 4065(in)X
  2303. 4148(logi-)X
  2304. 555 3783(cal)N
  2305. 673(logging)X
  2306. 941(might)X
  2307. 1151(be)X
  2308. 1251(physical)X
  2309. 1542(pages.)X
  2310. 1789(Since)X
  2311. 1991(logical)X
  2312. 2233(logging)X
  2313. 2501(is)X
  2314. 2578(both)X
  2315. 2743(more)X
  2316. 2931(space-ef256cient)X
  2317. 3423(and)X
  2318. 3562(more)X
  2319. 3750(general,)X
  2320. 4030(we)X
  2321. 4147(have)X
  2322. 555 3873(chosen)N
  2323. 798(it)X
  2324. 862(for)X
  2325. 976(our)X
  2326. 1103(logging)X
  2327. 1367(protocol.)X
  2328. 755 3996(In)N
  2329. 3 f
  2330. 843(before-image)X
  2331. 1315(logging)X
  2332. 1 f
  2333. 1563(,)X
  2334. 1604(we)X
  2335. 1719(log)X
  2336. 1842(a)X
  2337. 1899(copy)X
  2338. 2076(of)X
  2339. 2164(the)X
  2340. 2283(data)X
  2341. 2438(before)X
  2342. 2665(the)X
  2343. 2784(update,)X
  2344. 3039(while)X
  2345. 3238(in)X
  2346. 3 f
  2347. 3321(after-image)X
  2348. 3739(logging)X
  2349. 1 f
  2350. 3987(,)X
  2351. 4027(we)X
  2352. 4141(log)X
  2353. 4263(a)X
  2354. 555 4086(copy)N
  2355. 740(of)X
  2356. 836(the)X
  2357. 963(data)X
  2358. 1126(after)X
  2359. 1303(the)X
  2360. 1429(update.)X
  2361. 1711(If)X
  2362. 1793(we)X
  2363. 1915(log)X
  2364. 2045(only)X
  2365. 2215(before-images,)X
  2366. 2723(then)X
  2367. 2889(there)X
  2368. 3078(is)X
  2369. 3159(suf256cient)X
  2370. 3485(information)X
  2371. 3891(in)X
  2372. 3981(the)X
  2373. 4107(log)X
  2374. 4237(to)X
  2375. 555 4176(allow)N
  2376. 761(us)X
  2377. 860(to)X
  2378. 3 f
  2379. 950(undo)X
  2380. 1 f
  2381. 1150(the)X
  2382. 1276(transaction)X
  2383. 1656((go)X
  2384. 1791(back)X
  2385. 1971(to)X
  2386. 2061(the)X
  2387. 2187(state)X
  2388. 2361(represented)X
  2389. 2759(by)X
  2390. 2866(the)X
  2391. 2991(before-image).)X
  2392. 3514(However,)X
  2393. 3876(if)X
  2394. 3952(the)X
  2395. 4077(system)X
  2396. 555 4266(crashes)N
  2397. 814(and)X
  2398. 952(a)X
  2399. 1010(committed)X
  2400. 1374(transaction's)X
  2401. 1806(changes)X
  2402. 2087(have)X
  2403. 2261(not)X
  2404. 2385(reached)X
  2405. 2658(the)X
  2406. 2778(disk,)X
  2407. 2953(we)X
  2408. 3068(have)X
  2409. 3241(no)X
  2410. 3342(means)X
  2411. 3568(to)X
  2412. 3 f
  2413. 3651(redo)X
  2414. 1 f
  2415. 3828(the)X
  2416. 3947(transaction)X
  2417. 555 4356((reapply)N
  2418. 849(the)X
  2419. 973(updates).)X
  2420. 1311(Therefore,)X
  2421. 1675(logging)X
  2422. 1945(only)X
  2423. 2113(before-images)X
  2424. 2599(necessitates)X
  2425. 3004(forcing)X
  2426. 3262(dirty)X
  2427. 3439(pages)X
  2428. 3648(at)X
  2429. 3732(commit)X
  2430. 4002(time.)X
  2431. 4210(As)X
  2432. 555 4446(mentioned)N
  2433. 913(above,)X
  2434. 1145(forcing)X
  2435. 1397(pages)X
  2436. 1600(at)X
  2437. 1678(commit)X
  2438. 1942(is)X
  2439. 2015(considered)X
  2440. 2383(too)X
  2441. 2505(costly.)X
  2442. 755 4569(If)N
  2443. 834(we)X
  2444. 953(log)X
  2445. 1080(only)X
  2446. 1247(after-images,)X
  2447. 1694(then)X
  2448. 1857(there)X
  2449. 2043(is)X
  2450. 2121(suf256cient)X
  2451. 2444(information)X
  2452. 2847(in)X
  2453. 2934(the)X
  2454. 3057(log)X
  2455. 3184(to)X
  2456. 3271(allow)X
  2457. 3474(us)X
  2458. 3570(to)X
  2459. 3657(redo)X
  2460. 3825(the)X
  2461. 3947(transaction)X
  2462. 555 4659((go)N
  2463. 687(forward)X
  2464. 967(to)X
  2465. 1054(the)X
  2466. 1177(state)X
  2467. 1348(represented)X
  2468. 1743(by)X
  2469. 1847(the)X
  2470. 1969(after-image),)X
  2471. 2411(but)X
  2472. 2537(we)X
  2473. 2655(do)X
  2474. 2759(not)X
  2475. 2885(have)X
  2476. 3061(the)X
  2477. 3183(information)X
  2478. 3585(required)X
  2479. 3877(to)X
  2480. 3963(undo)X
  2481. 4147(tran-)X
  2482. 555 4749(sactions)N
  2483. 845(which)X
  2484. 1073(aborted)X
  2485. 1346(after)X
  2486. 1526(dirty)X
  2487. 1709(pages)X
  2488. 1924(were)X
  2489. 2113(written)X
  2490. 2372(to)X
  2491. 2466(disk.)X
  2492. 2670(Therefore,)X
  2493. 3039(logging)X
  2494. 3314(only)X
  2495. 3487(after-images)X
  2496. 3920(necessitates)X
  2497. 555 4839(holding)N
  2498. 819(all)X
  2499. 919(dirty)X
  2500. 1090(buffers)X
  2501. 1338(in)X
  2502. 1420(main)X
  2503. 1600(memory)X
  2504. 1887(until)X
  2505. 2053(commit)X
  2506. 2317(or)X
  2507. 2404(writing)X
  2508. 2655(them)X
  2509. 2835(to)X
  2510. 2917(a)X
  2511. 2973(temporary)X
  2512. 3323(256le.)X
  2513. 755 4962(Since)N
  2514. 956(neither)X
  2515. 1202(constraint)X
  2516. 1541((forcing)X
  2517. 1823(pages)X
  2518. 2029(on)X
  2519. 2132(commit)X
  2520. 2399(or)X
  2521. 2489(buffering)X
  2522. 2811(pages)X
  2523. 3016(until)X
  2524. 3184(commit))X
  2525. 3477(was)X
  2526. 3624(feasible,)X
  2527. 3916(we)X
  2528. 4032(chose)X
  2529. 4237(to)X
  2530. 555 5052(log)N
  2531. 683(both)X
  2532. 851(before)X
  2533. 1083(and)X
  2534. 1225(after)X
  2535. 1399(images.)X
  2536. 1672(The)X
  2537. 1823(only)X
  2538. 1991(remaining)X
  2539. 2342(consideration)X
  2540. 2800(is)X
  2541. 2879(when)X
  2542. 3079(changes)X
  2543. 3363(get)X
  2544. 3486(written)X
  2545. 3738(to)X
  2546. 3825(disk.)X
  2547. 4023(Changes)X
  2548. 555 5142(affect)N
  2549. 764(both)X
  2550. 931(data)X
  2551. 1090(pages)X
  2552. 1298(and)X
  2553. 1438(the)X
  2554. 1560(log.)X
  2555. 1726(If)X
  2556. 1804(the)X
  2557. 1926(changed)X
  2558. 2218(data)X
  2559. 2376(page)X
  2560. 2552(is)X
  2561. 2629(written)X
  2562. 2880(before)X
  2563. 3110(the)X
  2564. 3232(log)X
  2565. 3358(page,)X
  2566. 3554(and)X
  2567. 3694(the)X
  2568. 3816(system)X
  2569. 4062(crashes)X
  2570. 555 5232(before)N
  2571. 787(the)X
  2572. 911(log)X
  2573. 1039(page)X
  2574. 1217(is)X
  2575. 1296(written,)X
  2576. 1569(the)X
  2577. 1693(log)X
  2578. 1820(will)X
  2579. 1969(contain)X
  2580. 2230(insuf256cient)X
  2581. 2615(information)X
  2582. 3018(to)X
  2583. 3105(undo)X
  2584. 3290(the)X
  2585. 3413(change.)X
  2586. 3706(This)X
  2587. 3873(violates)X
  2588. 4147(tran-)X
  2589. 555 5322(saction)N
  2590. 803(semantics,)X
  2591. 1160(since)X
  2592. 1346(some)X
  2593. 1536(changed)X
  2594. 1825(data)X
  2595. 1980(pages)X
  2596. 2184(may)X
  2597. 2343(not)X
  2598. 2466(have)X
  2599. 2638(been)X
  2600. 2810(written,)X
  2601. 3077(and)X
  2602. 3213(the)X
  2603. 3331(database)X
  2604. 3628(cannot)X
  2605. 3862(be)X
  2606. 3958(restored)X
  2607. 4237(to)X
  2608. 555 5412(its)N
  2609. 650(pre-transaction)X
  2610. 1152(state.)X
  2611. 755 5535(The)N
  2612. 914(log)X
  2613. 1050(record)X
  2614. 1290(describing)X
  2615. 1658(an)X
  2616. 1768(update)X
  2617. 2016(must)X
  2618. 2205(be)X
  2619. 2315(written)X
  2620. 2576(to)X
  2621. 2672(stable)X
  2622. 2893(storage)X
  2623. 3159(before)X
  2624. 3398(the)X
  2625. 3529(modi256ed)X
  2626. 3846(page.)X
  2627. 4071(This)X
  2628. 4246(is)X
  2629. 3 f
  2630. 555 5625(write-ahead)N
  2631. 992(logging)X
  2632. 1 f
  2633. 1240(.)X
  2634. 1307(If)X
  2635. 1388(log)X
  2636. 1517(records)X
  2637. 1781(are)X
  2638. 1907(safely)X
  2639. 2126(written)X
  2640. 2380(to)X
  2641. 2469(disk,)X
  2642. 2649(data)X
  2643. 2810(pages)X
  2644. 3020(may)X
  2645. 3185(be)X
  2646. 3288(written)X
  2647. 3542(at)X
  2648. 3627(any)X
  2649. 3770(time)X
  2650. 3939(afterwards.)X
  2651. 555 5715(This)N
  2652. 721(means)X
  2653. 950(that)X
  2654. 1094(the)X
  2655. 1216(only)X
  2656. 1382(256le)X
  2657. 1508(that)X
  2658. 1652(ever)X
  2659. 1815(needs)X
  2660. 2022(to)X
  2661. 2108(be)X
  2662. 2208(forced)X
  2663. 2438(to)X
  2664. 2524(disk)X
  2665. 2681(is)X
  2666. 2758(the)X
  2667. 2880(log.)X
  2668. 3046(Since)X
  2669. 3248(the)X
  2670. 3370(log)X
  2671. 3495(is)X
  2672. 3571(append-only,)X
  2673. 4015(modi256ed)X
  2674. 4 p
  2675. %%Page: 4 4
  2676. 10 s 10 xH 0 xS 1 f
  2677. 3 f
  2678. 1 f
  2679. 555 630(pages)N
  2680. 760(always)X
  2681. 1005(appear)X
  2682. 1242(at)X
  2683. 1322(the)X
  2684. 1442(end)X
  2685. 1580(and)X
  2686. 1718(may)X
  2687. 1878(be)X
  2688. 1976(written)X
  2689. 2224(to)X
  2690. 2307(disk)X
  2691. 2461(ef256ciently)X
  2692. 2807(in)X
  2693. 2890(any)X
  2694. 3027(256le)X
  2695. 3150(system)X
  2696. 3393(that)X
  2697. 3534(favors)X
  2698. 3756(sequential)X
  2699. 4102(order-)X
  2700. 555 720(ing)N
  2701. 677(()X
  2702. 2 f
  2703. 704(e.g.)X
  2704. 1 f
  2705. 820(,)X
  2706. 860(FFS,)X
  2707. 1032(log-structured)X
  2708. 1502(256le)X
  2709. 1624(system,)X
  2710. 1886(or)X
  2711. 1973(an)X
  2712. 2069(extent-based)X
  2713. 2495(system).)X
  2714. 3 f
  2715. 555 906(3.1.2.)N
  2716. 775(Concurrency)X
  2717. 1245(Control)X
  2718. 1 f
  2719. 755 1029(The)N
  2720. 918(concurrency)X
  2721. 1354(control)X
  2722. 1619(protocol)X
  2723. 1923(is)X
  2724. 2013(responsible)X
  2725. 2415(for)X
  2726. 2546(maintaining)X
  2727. 2965(consistency)X
  2728. 3376(in)X
  2729. 3475(the)X
  2730. 3610(presence)X
  2731. 3929(of)X
  2732. 4033(multiple)X
  2733. 555 1119(accesses.)N
  2734. 897(There)X
  2735. 1114(are)X
  2736. 1242(several)X
  2737. 1499(alternative)X
  2738. 1867(solutions)X
  2739. 2183(such)X
  2740. 2358(as)X
  2741. 2453(locking,)X
  2742. 2741(optimistic)X
  2743. 3088(concurrency)X
  2744. 3514(control)X
  2745. 3769([KUNG81],)X
  2746. 4183(and)X
  2747. 555 1209(timestamp)N
  2748. 912(ordering)X
  2749. 1208([BERN80].)X
  2750. 1619(Since)X
  2751. 1821(optimistic)X
  2752. 2164(methods)X
  2753. 2459(and)X
  2754. 2599(timestamp)X
  2755. 2956(ordering)X
  2756. 3252(are)X
  2757. 3374(generally)X
  2758. 3696(more)X
  2759. 3884(complex)X
  2760. 4183(and)X
  2761. 555 1299(restrict)N
  2762. 804(concurrency)X
  2763. 1228(without)X
  2764. 1498(eliminating)X
  2765. 1888(starvation)X
  2766. 2230(or)X
  2767. 2323(deadlocks,)X
  2768. 2690(we)X
  2769. 2810(chose)X
  2770. 3018(two-phase)X
  2771. 3373(locking)X
  2772. 3638((2PL).)X
  2773. 3890(Strict)X
  2774. 4088(2PL)X
  2775. 4246(is)X
  2776. 555 1389(suboptimal)N
  2777. 935(for)X
  2778. 1054(certain)X
  2779. 1297(data)X
  2780. 1455(structures)X
  2781. 1791(such)X
  2782. 1962(as)X
  2783. 2053(B-trees)X
  2784. 2309(because)X
  2785. 2588(it)X
  2786. 2656(can)X
  2787. 2792(limit)X
  2788. 2966(concurrency,)X
  2789. 3408(so)X
  2790. 3503(we)X
  2791. 3621(use)X
  2792. 3752(a)X
  2793. 3812(special)X
  2794. 4059(locking)X
  2795. 555 1479(protocol)N
  2796. 842(based)X
  2797. 1045(on)X
  2798. 1145(one)X
  2799. 1281(described)X
  2800. 1609(in)X
  2801. 1691([LEHM81].)X
  2802. 755 1602(The)N
  2803. 901(B-tree)X
  2804. 1123(locking)X
  2805. 1384(protocol)X
  2806. 1672(we)X
  2807. 1787(implemented)X
  2808. 2226(releases)X
  2809. 2502(locks)X
  2810. 2691(at)X
  2811. 2769(internal)X
  2812. 3034(nodes)X
  2813. 3241(in)X
  2814. 3323(the)X
  2815. 3441(tree)X
  2816. 3582(as)X
  2817. 3669(it)X
  2818. 3733(descends.)X
  2819. 4083(A)X
  2820. 4161(lock)X
  2821. 555 1692(on)N
  2822. 658(an)X
  2823. 757(internal)X
  2824. 1025(page)X
  2825. 1200(is)X
  2826. 1276(always)X
  2827. 1522(released)X
  2828. 1808(before)X
  2829. 2036(a)X
  2830. 2094(lock)X
  2831. 2254(on)X
  2832. 2356(its)X
  2833. 2453(child)X
  2834. 2635(is)X
  2835. 2710(obtained)X
  2836. 3008((that)X
  2837. 3177(is,)X
  2838. 3272(locks)X
  2839. 3463(are)X
  2840. 3584(not)X
  2841. 3 f
  2842. 3708(coupled)X
  2843. 1 f
  2844. 3996([BAY77])X
  2845. 555 1782(during)N
  2846. 786(descent).)X
  2847. 1116(When)X
  2848. 1330(a)X
  2849. 1388(leaf)X
  2850. 1531((or)X
  2851. 1647(internal))X
  2852. 1941(page)X
  2853. 2115(is)X
  2854. 2190(split,)X
  2855. 2369(a)X
  2856. 2427(write)X
  2857. 2614(lock)X
  2858. 2774(is)X
  2859. 2849(acquired)X
  2860. 3148(on)X
  2861. 3250(the)X
  2862. 3370(parent)X
  2863. 3593(before)X
  2864. 3821(the)X
  2865. 3941(lock)X
  2866. 4100(on)X
  2867. 4201(the)X
  2868. 555 1872(just-split)N
  2869. 855(page)X
  2870. 1028(is)X
  2871. 1102(released)X
  2872. 1387((locks)X
  2873. 1604(are)X
  2874. 3 f
  2875. 1724(coupled)X
  2876. 1 f
  2877. 2011(during)X
  2878. 2241(ascent).)X
  2879. 2530(Write)X
  2880. 2734(locks)X
  2881. 2924(on)X
  2882. 3025(internal)X
  2883. 3291(pages)X
  2884. 3495(are)X
  2885. 3615(released)X
  2886. 3899(immediately)X
  2887. 555 1962(after)N
  2888. 723(the)X
  2889. 841(page)X
  2890. 1013(is)X
  2891. 1086(updated,)X
  2892. 1380(but)X
  2893. 1502(locks)X
  2894. 1691(on)X
  2895. 1791(leaf)X
  2896. 1932(pages)X
  2897. 2135(are)X
  2898. 2254(held)X
  2899. 2412(until)X
  2900. 2578(the)X
  2901. 2696(end)X
  2902. 2832(of)X
  2903. 2919(the)X
  2904. 3037(transaction.)X
  2905. 755 2085(Since)N
  2906. 964(locks)X
  2907. 1164(are)X
  2908. 1294(released)X
  2909. 1589(during)X
  2910. 1828(descent,)X
  2911. 2119(the)X
  2912. 2247(structure)X
  2913. 2558(of)X
  2914. 2655(the)X
  2915. 2783(tree)X
  2916. 2934(may)X
  2917. 3102(change)X
  2918. 3360(above)X
  2919. 3582(a)X
  2920. 3648(node)X
  2921. 3834(being)X
  2922. 4042(used)X
  2923. 4219(by)X
  2924. 555 2175(some)N
  2925. 752(process.)X
  2926. 1061(If)X
  2927. 1143(that)X
  2928. 1291(process)X
  2929. 1560(must)X
  2930. 1743(later)X
  2931. 1914(ascend)X
  2932. 2161(the)X
  2933. 2287(tree)X
  2934. 2435(because)X
  2935. 2717(of)X
  2936. 2811(a)X
  2937. 2874(page)X
  2938. 3053(split,)X
  2939. 3237(any)X
  2940. 3380(such)X
  2941. 3554(change)X
  2942. 3809(must)X
  2943. 3991(not)X
  2944. 4120(cause)X
  2945. 555 2265(confusion.)N
  2946. 938(We)X
  2947. 1077(use)X
  2948. 1211(the)X
  2949. 1336(technique)X
  2950. 1675(described)X
  2951. 2010(in)X
  2952. 2099([LEHM81])X
  2953. 2487(which)X
  2954. 2710(exploits)X
  2955. 2989(the)X
  2956. 3113(ordering)X
  2957. 3411(of)X
  2958. 3504(data)X
  2959. 3664(on)X
  2960. 3770(a)X
  2961. 3832(B-tree)X
  2962. 4059(page)X
  2963. 4237(to)X
  2964. 555 2355(guarantee)N
  2965. 888(that)X
  2966. 1028(no)X
  2967. 1128(process)X
  2968. 1389(ever)X
  2969. 1548(gets)X
  2970. 1697(lost)X
  2971. 1832(as)X
  2972. 1919(a)X
  2973. 1975(result)X
  2974. 2173(of)X
  2975. 2260(internal)X
  2976. 2525(page)X
  2977. 2697(updates)X
  2978. 2962(made)X
  2979. 3156(by)X
  2980. 3256(other)X
  2981. 3441(processes.)X
  2982. 755 2478(If)N
  2983. 836(a)X
  2984. 899(transaction)X
  2985. 1278(that)X
  2986. 1425(updates)X
  2987. 1697(a)X
  2988. 1760(B-tree)X
  2989. 1988(aborts,)X
  2990. 2231(the)X
  2991. 2356(user-visible)X
  2992. 2757(changes)X
  2993. 3043(to)X
  2994. 3131(the)X
  2995. 3255(tree)X
  2996. 3402(must)X
  2997. 3583(be)X
  2998. 3685(rolled)X
  2999. 3898(back.)X
  3000. 4116(How-)X
  3001. 555 2568(ever,)N
  3002. 735(changes)X
  3003. 1015(to)X
  3004. 1097(the)X
  3005. 1215(internal)X
  3006. 1480(nodes)X
  3007. 1687(of)X
  3008. 1774(the)X
  3009. 1892(tree)X
  3010. 2033(need)X
  3011. 2205(not)X
  3012. 2327(be)X
  3013. 2423(rolled)X
  3014. 2630(back,)X
  3015. 2822(since)X
  3016. 3007(these)X
  3017. 3192(pages)X
  3018. 3395(contain)X
  3019. 3651(no)X
  3020. 3751(user-visible)X
  3021. 4145(data.)X
  3022. 555 2658(When)N
  3023. 771(rolling)X
  3024. 1008(back)X
  3025. 1184(a)X
  3026. 1244(transaction,)X
  3027. 1640(we)X
  3028. 1758(roll)X
  3029. 1893(back)X
  3030. 2069(all)X
  3031. 2173(leaf)X
  3032. 2318(page)X
  3033. 2494(updates,)X
  3034. 2783(but)X
  3035. 2909(no)X
  3036. 3013(internal)X
  3037. 3281(insertions)X
  3038. 3615(or)X
  3039. 3705(page)X
  3040. 3880(splits.)X
  3041. 4111(In)X
  3042. 4201(the)X
  3043. 555 2748(worst)N
  3044. 759(case,)X
  3045. 944(this)X
  3046. 1085(will)X
  3047. 1235(leave)X
  3048. 1431(a)X
  3049. 1493(leaf)X
  3050. 1640(page)X
  3051. 1818(less)X
  3052. 1964(than)X
  3053. 2128(half)X
  3054. 2279(full.)X
  3055. 2456(This)X
  3056. 2624(may)X
  3057. 2788(cause)X
  3058. 2993(poor)X
  3059. 3166(space)X
  3060. 3371(utilization,)X
  3061. 3741(but)X
  3062. 3869(does)X
  3063. 4042(not)X
  3064. 4170(lose)X
  3065. 555 2838(user)N
  3066. 709(data.)X
  3067. 755 2961(Holding)N
  3068. 1038(locks)X
  3069. 1228(on)X
  3070. 1329(leaf)X
  3071. 1471(pages)X
  3072. 1675(until)X
  3073. 1842(transaction)X
  3074. 2215(commit)X
  3075. 2480(guarantees)X
  3076. 2845(that)X
  3077. 2986(no)X
  3078. 3087(other)X
  3079. 3273(process)X
  3080. 3535(can)X
  3081. 3668(insert)X
  3082. 3866(or)X
  3083. 3953(delete)X
  3084. 4165(data)X
  3085. 555 3051(that)N
  3086. 711(has)X
  3087. 854(been)X
  3088. 1042(touched)X
  3089. 1332(by)X
  3090. 1448(this)X
  3091. 1598(process.)X
  3092. 1914(Rolling)X
  3093. 2188(back)X
  3094. 2375(insertions)X
  3095. 2721(and)X
  3096. 2872(deletions)X
  3097. 3196(on)X
  3098. 3311(leaf)X
  3099. 3467(pages)X
  3100. 3685(guarantees)X
  3101. 4064(that)X
  3102. 4219(no)X
  3103. 555 3141(aborted)N
  3104. 819(updates)X
  3105. 1087(are)X
  3106. 1209(ever)X
  3107. 1371(visible)X
  3108. 1607(to)X
  3109. 1692(other)X
  3110. 1880(transactions.)X
  3111. 2326(Leaving)X
  3112. 2612(page)X
  3113. 2787(splits)X
  3114. 2978(intact)X
  3115. 3179(permits)X
  3116. 3442(us)X
  3117. 3536(to)X
  3118. 3621(release)X
  3119. 3867(internal)X
  3120. 4134(write)X
  3121. 555 3231(locks)N
  3122. 744(early.)X
  3123. 965(Thus)X
  3124. 1145(transaction)X
  3125. 1517(semantics)X
  3126. 1853(are)X
  3127. 1972(preserved,)X
  3128. 2325(and)X
  3129. 2461(locks)X
  3130. 2650(are)X
  3131. 2769(held)X
  3132. 2927(for)X
  3133. 3041(shorter)X
  3134. 3284(periods.)X
  3135. 755 3354(The)N
  3136. 901(extra)X
  3137. 1083(complexity)X
  3138. 1464(introduced)X
  3139. 1828(by)X
  3140. 1929(this)X
  3141. 2065(locking)X
  3142. 2326(protocol)X
  3143. 2614(appears)X
  3144. 2881(substantial,)X
  3145. 3264(but)X
  3146. 3387(it)X
  3147. 3452(is)X
  3148. 3525(important)X
  3149. 3856(for)X
  3150. 3970(multi-user)X
  3151. 555 3444(execution.)N
  3152. 950(The)X
  3153. 1118(bene256ts)X
  3154. 1410(of)X
  3155. 1520(non-two-phase)X
  3156. 2040(locking)X
  3157. 2323(on)X
  3158. 2446(B-trees)X
  3159. 2721(are)X
  3160. 2863(well)X
  3161. 3044(established)X
  3162. 3443(in)X
  3163. 3548(the)X
  3164. 3689(database)X
  3165. 4009(literature)X
  3166. 555 3534([BAY77],)N
  3167. 899([LEHM81].)X
  3168. 1320(If)X
  3169. 1394(a)X
  3170. 1450(process)X
  3171. 1711(held)X
  3172. 1869(locks)X
  3173. 2058(until)X
  3174. 2224(it)X
  3175. 2288(committed,)X
  3176. 2670(then)X
  3177. 2828(a)X
  3178. 2884(long-running)X
  3179. 3322(update)X
  3180. 3556(could)X
  3181. 3754(lock)X
  3182. 3912(out)X
  3183. 4034(all)X
  3184. 4134(other)X
  3185. 555 3624(transactions)N
  3186. 967(by)X
  3187. 1076(preventing)X
  3188. 1448(any)X
  3189. 1593(other)X
  3190. 1787(process)X
  3191. 2057(from)X
  3192. 2241(locking)X
  3193. 2509(the)X
  3194. 2635(root)X
  3195. 2792(page)X
  3196. 2972(of)X
  3197. 3067(the)X
  3198. 3193(tree.)X
  3199. 3382(The)X
  3200. 3535(B-tree)X
  3201. 3764(locking)X
  3202. 4032(protocol)X
  3203. 555 3714(described)N
  3204. 884(above)X
  3205. 1096(guarantees)X
  3206. 1460(that)X
  3207. 1600(locks)X
  3208. 1789(on)X
  3209. 1889(internal)X
  3210. 2154(pages)X
  3211. 2357(are)X
  3212. 2476(held)X
  3213. 2634(for)X
  3214. 2748(extremely)X
  3215. 3089(short)X
  3216. 3269(periods,)X
  3217. 3545(thereby)X
  3218. 3806(increasing)X
  3219. 4156(con-)X
  3220. 555 3804(currency.)N
  3221. 3 f
  3222. 555 3990(3.1.3.)N
  3223. 775(Management)X
  3224. 1245(of)X
  3225. 1332(Shared)X
  3226. 1596(Data)X
  3227. 1 f
  3228. 755 4113(Database)N
  3229. 1075(systems)X
  3230. 1353(permit)X
  3231. 1587(many)X
  3232. 1790(users)X
  3233. 1980(to)X
  3234. 2067(examine)X
  3235. 2364(and)X
  3236. 2505(update)X
  3237. 2744(the)X
  3238. 2866(same)X
  3239. 3055(data)X
  3240. 3213(concurrently.)X
  3241. 3683(In)X
  3242. 3774(order)X
  3243. 3968(to)X
  3244. 4054(provide)X
  3245. 555 4203(this)N
  3246. 702(concurrent)X
  3247. 1078(access)X
  3248. 1316(and)X
  3249. 1464(enforce)X
  3250. 1738(the)X
  3251. 1868(write-ahead)X
  3252. 2280(logging)X
  3253. 2556(protocol)X
  3254. 2855(described)X
  3255. 3195(in)X
  3256. 3289(section)X
  3257. 3548(3.1.1,)X
  3258. 3759(we)X
  3259. 3884(use)X
  3260. 4022(a)X
  3261. 4089(shared)X
  3262. 555 4293(memory)N
  3263. 848(buffer)X
  3264. 1071(manager.)X
  3265. 1414(Not)X
  3266. 1559(only)X
  3267. 1726(does)X
  3268. 1898(this)X
  3269. 2038(provide)X
  3270. 2308(the)X
  3271. 2431(guarantees)X
  3272. 2800(we)X
  3273. 2919(require,)X
  3274. 3192(but)X
  3275. 3319(a)X
  3276. 3380(user-level)X
  3277. 3722(buffer)X
  3278. 3944(manager)X
  3279. 4246(is)X
  3280. 555 4383(frequently)N
  3281. 916(faster)X
  3282. 1126(than)X
  3283. 1295(using)X
  3284. 1498(the)X
  3285. 1626(256le)X
  3286. 1758(system)X
  3287. 2010(buffer)X
  3288. 2237(cache.)X
  3289. 2491(Reads)X
  3290. 2717(or)X
  3291. 2814(writes)X
  3292. 3040(involving)X
  3293. 3376(the)X
  3294. 3504(256le)X
  3295. 3636(system)X
  3296. 3888(buffer)X
  3297. 4115(cache)X
  3298. 555 4473(often)N
  3299. 746(require)X
  3300. 1000(copying)X
  3301. 1284(data)X
  3302. 1444(between)X
  3303. 1738(user)X
  3304. 1898(and)X
  3305. 2040(kernel)X
  3306. 2266(space)X
  3307. 2470(while)X
  3308. 2673(a)X
  3309. 2734(user-level)X
  3310. 3076(buffer)X
  3311. 3298(manager)X
  3312. 3600(can)X
  3313. 3737(return)X
  3314. 3954(pointers)X
  3315. 4237(to)X
  3316. 555 4563(data)N
  3317. 709(pages)X
  3318. 912(directly.)X
  3319. 1217(Additionally,)X
  3320. 1661(if)X
  3321. 1730(more)X
  3322. 1915(than)X
  3323. 2073(one)X
  3324. 2209(process)X
  3325. 2470(uses)X
  3326. 2628(the)X
  3327. 2746(same)X
  3328. 2931(page,)X
  3329. 3123(then)X
  3330. 3281(fewer)X
  3331. 3485(copies)X
  3332. 3710(may)X
  3333. 3868(be)X
  3334. 3964(required.)X
  3335. 3 f
  3336. 555 4749(3.2.)N
  3337. 715(Module)X
  3338. 997(Architecture)X
  3339. 1 f
  3340. 755 4872(The)N
  3341. 913(preceding)X
  3342. 1262(sections)X
  3343. 1552(described)X
  3344. 1892(modules)X
  3345. 2195(for)X
  3346. 2321(managing)X
  3347. 2669(the)X
  3348. 2799(transaction)X
  3349. 3183(log,)X
  3350. 3337(locks,)X
  3351. 3558(and)X
  3352. 3706(a)X
  3353. 3774(cache)X
  3354. 3990(of)X
  3355. 4089(shared)X
  3356. 555 4962(buffers.)N
  3357. 847(In)X
  3358. 938(addition,)X
  3359. 1244(we)X
  3360. 1362(need)X
  3361. 1538(to)X
  3362. 1624(provide)X
  3363. 1893(functionality)X
  3364. 2326(for)X
  3365. 2444(transaction)X
  3366. 2 f
  3367. 2819(begin)X
  3368. 1 f
  3369. 2997(,)X
  3370. 2 f
  3371. 3040(commit)X
  3372. 1 f
  3373. 3276(,)X
  3374. 3319(and)X
  3375. 2 f
  3376. 3458(abort)X
  3377. 1 f
  3378. 3654(processing,)X
  3379. 4040(necessi-)X
  3380. 555 5052(tating)N
  3381. 769(a)X
  3382. 837(transaction)X
  3383. 1221(manager.)X
  3384. 1570(In)X
  3385. 1669(order)X
  3386. 1871(to)X
  3387. 1965(arbitrate)X
  3388. 2265(concurrent)X
  3389. 2641(access)X
  3390. 2879(to)X
  3391. 2973(locks)X
  3392. 3173(and)X
  3393. 3320(buffers,)X
  3394. 3599(we)X
  3395. 3724(include)X
  3396. 3991(a)X
  3397. 4058(process)X
  3398. 555 5142(management)N
  3399. 995(module)X
  3400. 1264(which)X
  3401. 1489(manages)X
  3402. 1799(a)X
  3403. 1864(collection)X
  3404. 2209(of)X
  3405. 2305(semaphores)X
  3406. 2713(used)X
  3407. 2889(to)X
  3408. 2980(block)X
  3409. 3187(and)X
  3410. 3332(release)X
  3411. 3585(processes.)X
  3412. 3962(Finally,)X
  3413. 4237(in)X
  3414. 555 5232(order)N
  3415. 752(to)X
  3416. 841(provide)X
  3417. 1113(a)X
  3418. 1176(simple,)X
  3419. 1436(standard)X
  3420. 1735(interface)X
  3421. 2044(we)X
  3422. 2165(have)X
  3423. 2344(modi256ed)X
  3424. 2655(the)X
  3425. 2780(database)X
  3426. 3084(access)X
  3427. 3317(routines)X
  3428. 3602(()X
  3429. 3 f
  3430. 3629(db)X
  3431. 1 f
  3432. 3717((3)).)X
  3433. 3904(For)X
  3434. 4041(the)X
  3435. 4165(pur-)X
  3436. 555 5322(poses)N
  3437. 758(of)X
  3438. 850(this)X
  3439. 990(paper)X
  3440. 1194(we)X
  3441. 1313(call)X
  3442. 1453(the)X
  3443. 1575(modi256ed)X
  3444. 1883(package)X
  3445. 2171(the)X
  3446. 3 f
  3447. 2293(Record)X
  3448. 2567(Manager)X
  3449. 1 f
  3450. 2879(.)X
  3451. 2943(Figure)X
  3452. 3176(one)X
  3453. 3316(shows)X
  3454. 3540(the)X
  3455. 3662(main)X
  3456. 3846(interfaces)X
  3457. 4183(and)X
  3458. 555 5412(architecture)N
  3459. 955(of)X
  3460. 1042(LIBTP.)X
  3461. 5 p
  3462. %%Page: 5 5
  3463. 10 s 10 xH 0 xS 1 f
  3464. 3 f
  3465. 1 f
  3466. 11 s
  3467. 1851 1520(log_commit)N
  3468. 2764 2077(buf_unpin)N
  3469. 2764 1987(buf_get)N
  3470. 3633 1408(buf_unpin)N
  3471. 3633 1319(buf_pin)N
  3472. 3633 1230(buf_get)N
  3473. 3 f
  3474. 17 s
  3475. 1163 960(Txn)N
  3476. 1430(M)X
  3477. 1559(anager)X
  3478. 2582(Record)X
  3479. 3040(M)X
  3480. 3169(anager)X
  3481. 1 Dt
  3482. 2363 726 MXY
  3483. 0 355 Dl
  3484. 1426 0 Dl
  3485. 0 -355 Dl
  3486. -1426 0 Dl
  3487. 3255 1616 MXY
  3488. 0 535 Dl
  3489. 534 0 Dl
  3490. 0 -535 Dl
  3491. -534 0 Dl
  3492. 2185 MX
  3493. 0 535 Dl
  3494. 535 0 Dl
  3495. 0 -535 Dl
  3496. -535 0 Dl
  3497. 1116 MX
  3498. 0 535 Dl
  3499. 534 0 Dl
  3500. 0 -535 Dl
  3501. -534 0 Dl
  3502. 726 MY
  3503. 0 355 Dl
  3504. 891 0 Dl
  3505. 0 -355 Dl
  3506. -891 0 Dl
  3507. 1 f
  3508. 11 s
  3509. 2207 1297(lock)N
  3510. 2564 1386(log)N
  3511. 865(unlock_all)X
  3512. 1851 1609(log_unroll)N
  3513. 1650 2508 MXY
  3514. 0 178 Dl
  3515. 1605 0 Dl
  3516. 0 -178 Dl
  3517. -1605 0 Dl
  3518. 1294 1616 MXY
  3519. 19 -30 Dl
  3520. -19 11 Dl
  3521. -20 -11 Dl
  3522. 20 30 Dl
  3523. 0 -535 Dl
  3524. 2319 2508 MXY
  3525. -22 -30 Dl
  3526. 4 23 Dl
  3527. -18 14 Dl
  3528. 36 -7 Dl
  3529. -936 -357 Dl
  3530. 3277 2455(sleep_on)N
  3531. 1405 1616 MXY
  3532. 36 4 Dl
  3533. -18 -13 Dl
  3534. 1 -22 Dl
  3535. -19 31 Dl
  3536. 1070 -535 Dl
  3537. 2631 2508 MXY
  3538. 36 6 Dl
  3539. -18 -14 Dl
  3540. 3 -22 Dl
  3541. -21 30 Dl
  3542. 891 -357 Dl
  3543. 1426 2455(sleep_on)N
  3544. 3255 1884 MXY
  3545. -31 -20 Dl
  3546. 11 20 Dl
  3547. -11 19 Dl
  3548. 31 -19 Dl
  3549. -535 0 Dl
  3550. 1554 2366(wake)N
  3551. 3277(wake)X
  3552. 2185 1884 MXY
  3553. -31 -20 Dl
  3554. 12 20 Dl
  3555. -12 19 Dl
  3556. 31 -19 Dl
  3557. -356 0 Dl
  3558. 0 -803 Dl
  3559. 3 f
  3560. 17 s
  3561. 1236 1851(Lock)N
  3562. 1118 2030(M)N
  3563. 1247(anager)X
  3564. 2339 1851(Log)N
  3565. 2187 2030(M)N
  3566. 2316(anager)X
  3567. 3333 1851(Buffer)N
  3568. 3257 2030(M)N
  3569. 3386(anager)X
  3570. 3522 1616 MXY
  3571. 20 -30 Dl
  3572. -20 11 Dl
  3573. -20 -11 Dl
  3574. 20 30 Dl
  3575. 0 -535 Dl
  3576. 1950 2654(Process)N
  3577. 2424(M)X
  3578. 2553(anager)X
  3579. 2542 1616 MXY
  3580. 19 -30 Dl
  3581. -19 11 Dl
  3582. -20 -11 Dl
  3583. 20 30 Dl
  3584. 0 -535 Dl
  3585. 1 f
  3586. 11 s
  3587. 2207 1364(unlock)N
  3588. 2452 2508 MXY
  3589. 20 -31 Dl
  3590. -20 11 Dl
  3591. -19 -11 Dl
  3592. 19 31 Dl
  3593. 0 -357 Dl
  3594. 2497 2322(sleep_on)N
  3595. 2497 2233(wake)N
  3596. 3 Dt
  3597. -1 Ds
  3598. 3 f
  3599. 10 s
  3600. 1790 2830(Figure)N
  3601. 2037(1:)X
  3602. 2144(Library)X
  3603. 2435(module)X
  3604. 2708(interfaces.)X
  3605. 1 f
  3606. 10 f
  3607. 555 3010(h)N
  3608. 579(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)X
  3609. 3 f
  3610. 555 3286(3.2.1.)N
  3611. 775(The)X
  3612. 928(Log)X
  3613. 1081(Manager)X
  3614. 1 f
  3615. 755 3409(The)N
  3616. 3 f
  3617. 907(Log)X
  3618. 1067(Manager)X
  3619. 1 f
  3620. 1406(enforces)X
  3621. 1706(the)X
  3622. 1831(write-ahead)X
  3623. 2238(logging)X
  3624. 2509(protocol.)X
  3625. 2843(Its)X
  3626. 2949(primitive)X
  3627. 3268(operations)X
  3628. 3628(are)X
  3629. 2 f
  3630. 3753(log)X
  3631. 1 f
  3632. 3855(,)X
  3633. 2 f
  3634. 3901(log_commit)X
  3635. 1 f
  3636. 4279(,)X
  3637. 2 f
  3638. 555 3499(log_read)N
  3639. 1 f
  3640. 844(,)X
  3641. 2 f
  3642. 889(log_roll)X
  3643. 1 f
  3644. 1171(and)X
  3645. 2 f
  3646. 1312(log_unroll)X
  3647. 1 f
  3648. 1649(.)X
  3649. 1714(The)X
  3650. 2 f
  3651. 1864(log)X
  3652. 1 f
  3653. 1991(call)X
  3654. 2132(performs)X
  3655. 2447(a)X
  3656. 2508(buffered)X
  3657. 2806(write)X
  3658. 2996(of)X
  3659. 3088(the)X
  3660. 3211(speci256ed)X
  3661. 3520(log)X
  3662. 3646(record)X
  3663. 3876(and)X
  3664. 4016(returns)X
  3665. 4263(a)X
  3666. 555 3589(unique)N
  3667. 809(log)X
  3668. 947(sequence)X
  3669. 1278(number)X
  3670. 1559((LSN).)X
  3671. 1840(This)X
  3672. 2017(LSN)X
  3673. 2203(may)X
  3674. 2376(then)X
  3675. 2549(be)X
  3676. 2660(used)X
  3677. 2842(to)X
  3678. 2939(retrieve)X
  3679. 3220(a)X
  3680. 3291(record)X
  3681. 3532(from)X
  3682. 3723(the)X
  3683. 3856(log)X
  3684. 3993(using)X
  3685. 4201(the)X
  3686. 2 f
  3687. 555 3679(log_read)N
  3688. 1 f
  3689. 865(call.)X
  3690. 1042(The)X
  3691. 2 f
  3692. 1188(log)X
  3693. 1 f
  3694. 1311(interface)X
  3695. 1614(knows)X
  3696. 1844(very)X
  3697. 2008(little)X
  3698. 2175(about)X
  3699. 2374(the)X
  3700. 2493(internal)X
  3701. 2759(format)X
  3702. 2993(of)X
  3703. 3080(the)X
  3704. 3198(log)X
  3705. 3320(records)X
  3706. 3577(it)X
  3707. 3641(receives.)X
  3708. 3965(Rather,)X
  3709. 4219(all)X
  3710. 555 3769(log)N
  3711. 681(records)X
  3712. 942(are)X
  3713. 1065 0.4028(referenced)AX
  3714. 1430(by)X
  3715. 1534(a)X
  3716. 1594(header)X
  3717. 1833(structure,)X
  3718. 2158(a)X
  3719. 2218(log)X
  3720. 2344(record)X
  3721. 2574(type,)X
  3722. 2756(and)X
  3723. 2896(a)X
  3724. 2956(character)X
  3725. 3276(buffer)X
  3726. 3497(containing)X
  3727. 3859(the)X
  3728. 3981(data)X
  3729. 4138(to)X
  3730. 4223(be)X
  3731. 555 3859(logged.)N
  3732. 834(The)X
  3733. 980(log)X
  3734. 1103(record)X
  3735. 1330(type)X
  3736. 1489(is)X
  3737. 1563(used)X
  3738. 1731(to)X
  3739. 1814(call)X
  3740. 1951(the)X
  3741. 2070(appropriate)X
  3742. 2457(redo)X
  3743. 2621(and)X
  3744. 2758(undo)X
  3745. 2939(routines)X
  3746. 3217(during)X
  3747. 2 f
  3748. 3446(abort)X
  3749. 1 f
  3750. 3639(and)X
  3751. 2 f
  3752. 3775(commit)X
  3753. 1 f
  3754. 4031(process-)X
  3755. 555 3949(ing.)N
  3756. 721(While)X
  3757. 941(we)X
  3758. 1059(have)X
  3759. 1235(used)X
  3760. 1406(the)X
  3761. 3 f
  3762. 1528(Log)X
  3763. 1684(Manager)X
  3764. 1 f
  3765. 2019(to)X
  3766. 2104(provide)X
  3767. 2372(before)X
  3768. 2601(and)X
  3769. 2740(after)X
  3770. 2911(image)X
  3771. 3130(logging,)X
  3772. 3417(it)X
  3773. 3484(may)X
  3774. 3645(also)X
  3775. 3797(be)X
  3776. 3896(used)X
  3777. 4066(for)X
  3778. 4183(any)X
  3779. 555 4039(of)N
  3780. 642(the)X
  3781. 760(logging)X
  3782. 1024(algorithms)X
  3783. 1386(discussed.)X
  3784. 755 4162(The)N
  3785. 2 f
  3786. 905(log_commit)X
  3787. 1 f
  3788. 1308(operation)X
  3789. 1636(behaves)X
  3790. 1920(exactly)X
  3791. 2177(like)X
  3792. 2322(the)X
  3793. 2 f
  3794. 2445(log)X
  3795. 1 f
  3796. 2572(operation)X
  3797. 2900(but)X
  3798. 3026(guarantees)X
  3799. 3394(that)X
  3800. 3538(the)X
  3801. 3660(log)X
  3802. 3786(has)X
  3803. 3917(been)X
  3804. 4093(forced)X
  3805. 555 4252(to)N
  3806. 643(disk)X
  3807. 802(before)X
  3808. 1034(returning.)X
  3809. 1394(A)X
  3810. 1478(discussion)X
  3811. 1837(of)X
  3812. 1930(our)X
  3813. 2063(commit)X
  3814. 2333(strategy)X
  3815. 2613(appears)X
  3816. 2884(in)X
  3817. 2971(the)X
  3818. 3094(implementation)X
  3819. 3621(section)X
  3820. 3873((section)X
  3821. 4152(4.2).)X
  3822. 2 f
  3823. 555 4342(Log_unroll)N
  3824. 1 f
  3825. 935(reads)X
  3826. 1126(log)X
  3827. 1249(records)X
  3828. 1507(from)X
  3829. 1684(the)X
  3830. 1803(log,)X
  3831. 1946(following)X
  3832. 2278(backward)X
  3833. 2611(transaction)X
  3834. 2983(pointers)X
  3835. 3261(and)X
  3836. 3397(calling)X
  3837. 3635(the)X
  3838. 3753(appropriate)X
  3839. 4139(undo)X
  3840. 555 4432(routines)N
  3841. 839(to)X
  3842. 927(implement)X
  3843. 1295(transaction)X
  3844. 1673(abort.)X
  3845. 1904(In)X
  3846. 1997(a)X
  3847. 2059(similar)X
  3848. 2307(manner,)X
  3849. 2 f
  3850. 2594(log_roll)X
  3851. 1 f
  3852. 2877(reads)X
  3853. 3073(log)X
  3854. 3201(records)X
  3855. 3464(sequentially)X
  3856. 3877(forward,)X
  3857. 4178(cal-)X
  3858. 555 4522(ling)N
  3859. 699(the)X
  3860. 817(appropriate)X
  3861. 1203(redo)X
  3862. 1366(routines)X
  3863. 1644(to)X
  3864. 1726(recover)X
  3865. 1988(committed)X
  3866. 2350(transactions)X
  3867. 2753(after)X
  3868. 2921(a)X
  3869. 2977(system)X
  3870. 3219(crash.)X
  3871. 3 f
  3872. 555 4708(3.2.2.)N
  3873. 775(The)X
  3874. 928(Buffer)X
  3875. 1171(Manager)X
  3876. 1 f
  3877. 755 4831(The)N
  3878. 3 f
  3879. 912(Buffer)X
  3880. 1167(Manager)X
  3881. 1 f
  3882. 1511(uses)X
  3883. 1681(a)X
  3884. 1749(pool)X
  3885. 1923(of)X
  3886. 2022(shared)X
  3887. 2264(memory)X
  3888. 2563(to)X
  3889. 2657(provide)X
  3890. 2934(a)X
  3891. 3002(least-recently-used)X
  3892. 3641((LRU))X
  3893. 3886(block)X
  3894. 4095(cache.)X
  3895. 555 4921(Although)N
  3896. 886(the)X
  3897. 1013(current)X
  3898. 1270(library)X
  3899. 1513(provides)X
  3900. 1818(an)X
  3901. 1923(LRU)X
  3902. 2112(cache,)X
  3903. 2345(it)X
  3904. 2418(would)X
  3905. 2647(be)X
  3906. 2752(simple)X
  3907. 2994(to)X
  3908. 3085(add)X
  3909. 3229(alternate)X
  3910. 3534(replacement)X
  3911. 3955(policies)X
  3912. 4232(as)X
  3913. 555 5011(suggested)N
  3914. 903(by)X
  3915. 1015([CHOU85])X
  3916. 1408(or)X
  3917. 1507(to)X
  3918. 1601(provide)X
  3919. 1878(multiple)X
  3920. 2176(buffer)X
  3921. 2405(pools)X
  3922. 2610(with)X
  3923. 2784(different)X
  3924. 3092(policies.)X
  3925. 3412(Transactions)X
  3926. 3853(request)X
  3927. 4116(pages)X
  3928. 555 5101(from)N
  3929. 736(the)X
  3930. 859(buffer)X
  3931. 1081(manager)X
  3932. 1383(and)X
  3933. 1524(keep)X
  3934. 1701(them)X
  3935. 3 f
  3936. 1886(pinned)X
  3937. 1 f
  3938. 2145(to)X
  3939. 2232(ensure)X
  3940. 2466(that)X
  3941. 2610(they)X
  3942. 2772(are)X
  3943. 2895(not)X
  3944. 3021(written)X
  3945. 3272(to)X
  3946. 3358(disk)X
  3947. 3515(while)X
  3948. 3717(they)X
  3949. 3879(are)X
  3950. 4002(in)X
  3951. 4088(a)X
  3952. 4148(logi-)X
  3953. 555 5191(cally)N
  3954. 732(inconsistent)X
  3955. 1135(state.)X
  3956. 1343(When)X
  3957. 1556(page)X
  3958. 1729(replacement)X
  3959. 2143(is)X
  3960. 2217(necessary,)X
  3961. 2571(the)X
  3962. 3 f
  3963. 2689(Buffer)X
  3964. 2932(Manager)X
  3965. 1 f
  3966. 3264(256nds)X
  3967. 3439(an)X
  3968. 3535(unpinned)X
  3969. 3853(page)X
  3970. 4025(and)X
  3971. 4161(then)X
  3972. 555 5281(checks)N
  3973. 794(with)X
  3974. 956(the)X
  3975. 3 f
  3976. 1074(Log)X
  3977. 1227(Manager)X
  3978. 1 f
  3979. 1559(to)X
  3980. 1641(ensure)X
  3981. 1871(that)X
  3982. 2011(the)X
  3983. 2129(write-ahead)X
  3984. 2529(protocol)X
  3985. 2816(is)X
  3986. 2889(enforced.)X
  3987. 3 f
  3988. 555 5467(3.2.3.)N
  3989. 775(The)X
  3990. 928(Lock)X
  3991. 1121(Manager)X
  3992. 1 f
  3993. 755 5590(The)N
  3994. 3 f
  3995. 901(Lock)X
  3996. 1095(Manager)X
  3997. 1 f
  3998. 1428(supports)X
  3999. 1720(general)X
  4000. 1978(purpose)X
  4001. 2253(locking)X
  4002. 2514((single)X
  4003. 2753(writer,)X
  4004. 2986(multiple)X
  4005. 3273(readers))X
  4006. 3553(which)X
  4007. 3769(is)X
  4008. 3842(currently)X
  4009. 4152(used)X
  4010. 555 5680(to)N
  4011. 638(provide)X
  4012. 904(two-phase)X
  4013. 1254(locking)X
  4014. 1514(and)X
  4015. 1650(high)X
  4016. 1812(concurrency)X
  4017. 2230(B-tree)X
  4018. 2451(locking.)X
  4019. 2751(However,)X
  4020. 3086(the)X
  4021. 3204(general)X
  4022. 3461(purpose)X
  4023. 3735(nature)X
  4024. 3956(of)X
  4025. 4043(the)X
  4026. 4161(lock)X
  4027. 6 p
  4028. %%Page: 6 6
  4029. 10 s 10 xH 0 xS 1 f
  4030. 3 f
  4031. 1 f
  4032. 555 630(manager)N
  4033. 857(provides)X
  4034. 1158(the)X
  4035. 1281(ability)X
  4036. 1510(to)X
  4037. 1597(support)X
  4038. 1862(a)X
  4039. 1923(variety)X
  4040. 2171(of)X
  4041. 2263(locking)X
  4042. 2528(protocols.)X
  4043. 2890(Currently,)X
  4044. 3241(all)X
  4045. 3345(locks)X
  4046. 3538(are)X
  4047. 3661(issued)X
  4048. 3885(at)X
  4049. 3967(the)X
  4050. 4089(granu-)X
  4051. 555 720(larity)N
  4052. 747(of)X
  4053. 837(a)X
  4054. 896(page)X
  4055. 1071((the)X
  4056. 1219(size)X
  4057. 1367(of)X
  4058. 1457(a)X
  4059. 1516(buffer)X
  4060. 1736(in)X
  4061. 1821(the)X
  4062. 1942(buffer)X
  4063. 2161(pool))X
  4064. 2352(which)X
  4065. 2570(is)X
  4066. 2645(identi256ed)X
  4067. 2969(by)X
  4068. 3071(two)X
  4069. 3213(4-byte)X
  4070. 3440(integers)X
  4071. 3716((a)X
  4072. 3801(256le)X
  4073. 3925(id)X
  4074. 4009(and)X
  4075. 4147(page)X
  4076. 555 810(number).)N
  4077. 898(This)X
  4078. 1071(provides)X
  4079. 1378(the)X
  4080. 1507(necessary)X
  4081. 1851(information)X
  4082. 2259(to)X
  4083. 2351(extend)X
  4084. 2595(the)X
  4085. 3 f
  4086. 2723(Lock)X
  4087. 2926(Manager)X
  4088. 1 f
  4089. 3268(to)X
  4090. 3360(perform)X
  4091. 3649(hierarchical)X
  4092. 4059(locking)X
  4093. 555 900([GRAY76].)N
  4094. 982(The)X
  4095. 1133(current)X
  4096. 1387(implementation)X
  4097. 1915(does)X
  4098. 2088(not)X
  4099. 2216(support)X
  4100. 2482(locks)X
  4101. 2677(at)X
  4102. 2760(other)X
  4103. 2950(granularities)X
  4104. 3376(and)X
  4105. 3517(does)X
  4106. 3689(not)X
  4107. 3816(promote)X
  4108. 4108(locks;)X
  4109. 555 990(these)N
  4110. 740(are)X
  4111. 859(obvious)X
  4112. 1132(future)X
  4113. 1344(additions)X
  4114. 1657(to)X
  4115. 1739(the)X
  4116. 1857(system.)X
  4117. 755 1113(If)N
  4118. 831(an)X
  4119. 929(incoming)X
  4120. 1253(lock)X
  4121. 1413(request)X
  4122. 1667(cannot)X
  4123. 1903(be)X
  4124. 2001(granted,)X
  4125. 2284(the)X
  4126. 2404(requesting)X
  4127. 2760(process)X
  4128. 3023(is)X
  4129. 3098(queued)X
  4130. 3352(for)X
  4131. 3467(the)X
  4132. 3586(lock)X
  4133. 3745(and)X
  4134. 3882(descheduled.)X
  4135. 555 1203(When)N
  4136. 769(a)X
  4137. 827(lock)X
  4138. 987(is)X
  4139. 1062(released,)X
  4140. 1368(the)X
  4141. 1488(wait)X
  4142. 1647(queue)X
  4143. 1860(is)X
  4144. 1934(traversed)X
  4145. 2250(and)X
  4146. 2387(any)X
  4147. 2524(newly)X
  4148. 2741(compatible)X
  4149. 3118(locks)X
  4150. 3308(are)X
  4151. 3428(granted.)X
  4152. 3730(Locks)X
  4153. 3947(are)X
  4154. 4067(located)X
  4155. 555 1293(via)N
  4156. 680(a)X
  4157. 743(256le)X
  4158. 872(and)X
  4159. 1015(page)X
  4160. 1194(hash)X
  4161. 1368(table)X
  4162. 1551(and)X
  4163. 1694(are)X
  4164. 1820(chained)X
  4165. 2097(both)X
  4166. 2266(by)X
  4167. 2373(object)X
  4168. 2595(and)X
  4169. 2737(by)X
  4170. 2843(transaction,)X
  4171. 3241(facilitating)X
  4172. 3614(rapid)X
  4173. 3805(traversal)X
  4174. 4108(of)X
  4175. 4201(the)X
  4176. 555 1383(lock)N
  4177. 713(table)X
  4178. 889(during)X
  4179. 1118(transaction)X
  4180. 1490(commit)X
  4181. 1754(and)X
  4182. 1890(abort.)X
  4183. 755 1506(The)N
  4184. 907(primary)X
  4185. 1188(interfaces)X
  4186. 1528(to)X
  4187. 1617(the)X
  4188. 1742(lock)X
  4189. 1907(manager)X
  4190. 2211(are)X
  4191. 2 f
  4192. 2337(lock)X
  4193. 1 f
  4194. 2471(,)X
  4195. 2 f
  4196. 2518(unlock)X
  4197. 1 f
  4198. 2732(,)X
  4199. 2779(and)X
  4200. 2 f
  4201. 2922(lock_unlock_all)X
  4202. 1 f
  4203. 3434(.)X
  4204. 2 f
  4205. 3500(Lock)X
  4206. 1 f
  4207. 3682(obtains)X
  4208. 3939(a)X
  4209. 4001(new)X
  4210. 4161(lock)X
  4211. 555 1596(for)N
  4212. 680(a)X
  4213. 747(speci256c)X
  4214. 1023(object.)X
  4215. 1290(There)X
  4216. 1509(are)X
  4217. 1638(also)X
  4218. 1797(two)X
  4219. 1947(variants)X
  4220. 2231(of)X
  4221. 2328(the)X
  4222. 2 f
  4223. 2456(lock)X
  4224. 1 f
  4225. 2620(request,)X
  4226. 2 f
  4227. 2902(lock_upgrade)X
  4228. 1 f
  4229. 3373(and)X
  4230. 2 f
  4231. 3519(lock_downgrade)X
  4232. 1 f
  4233. 4053(,)X
  4234. 4103(which)X
  4235. 555 1686(allow)N
  4236. 755(the)X
  4237. 875(caller)X
  4238. 1076(to)X
  4239. 1160(atomically)X
  4240. 1519(trade)X
  4241. 1701(a)X
  4242. 1758(lock)X
  4243. 1917(of)X
  4244. 2005(one)X
  4245. 2142(type)X
  4246. 2301(for)X
  4247. 2416(a)X
  4248. 2473(lock)X
  4249. 2632(of)X
  4250. 2720(another.)X
  4251. 2 f
  4252. 3022(Unlock)X
  4253. 1 f
  4254. 3275(releases)X
  4255. 3551(a)X
  4256. 3608(speci256c)X
  4257. 3874(mode)X
  4258. 4073(of)X
  4259. 4161(lock)X
  4260. 555 1776(on)N
  4261. 655(a)X
  4262. 711(speci256c)X
  4263. 976(object.)X
  4264. 2 f
  4265. 1232(Lock_unlock_all)X
  4266. 1 f
  4267. 1786(releases)X
  4268. 2061(all)X
  4269. 2161(the)X
  4270. 2279(locks)X
  4271. 2468(associated)X
  4272. 2818(with)X
  4273. 2980(a)X
  4274. 3036(speci256c)X
  4275. 3301(transaction.)X
  4276. 3 f
  4277. 555 1962(3.2.4.)N
  4278. 775(The)X
  4279. 928(Process)X
  4280. 1207(Manager)X
  4281. 1 f
  4282. 755 2085(The)N
  4283. 3 f
  4284. 900(Process)X
  4285. 1179(Manager)X
  4286. 1 f
  4287. 1511(acts)X
  4288. 1656(as)X
  4289. 1743(a)X
  4290. 1799(user-level)X
  4291. 2136(scheduler)X
  4292. 2464(to)X
  4293. 2546(make)X
  4294. 2740(processes)X
  4295. 3068(wait)X
  4296. 3226(on)X
  4297. 3326(unavailable)X
  4298. 3716(locks)X
  4299. 3905(and)X
  4300. 4041(pending)X
  4301. 555 2175(buffer)N
  4302. 778(cache)X
  4303. 988(I/O.)X
  4304. 1161(For)X
  4305. 1297(each)X
  4306. 1470(process,)X
  4307. 1756(a)X
  4308. 1817(semaphore)X
  4309. 2190(is)X
  4310. 2268(maintained)X
  4311. 2649(upon)X
  4312. 2834(which)X
  4313. 3055(that)X
  4314. 3200(process)X
  4315. 3466(waits)X
  4316. 3660(when)X
  4317. 3859(it)X
  4318. 3928(needs)X
  4319. 4136(to)X
  4320. 4223(be)X
  4321. 555 2265(descheduled.)N
  4322. 1014(When)X
  4323. 1228(a)X
  4324. 1286(process)X
  4325. 1549(needs)X
  4326. 1754(to)X
  4327. 1838(be)X
  4328. 1936(run,)X
  4329. 2084(its)X
  4330. 2180(semaphore)X
  4331. 2549(is)X
  4332. 2623(cleared,)X
  4333. 2897(and)X
  4334. 3034(the)X
  4335. 3153(operating)X
  4336. 3477(system)X
  4337. 3720(reschedules)X
  4338. 4116(it.)X
  4339. 4201(No)X
  4340. 555 2355(sophisticated)N
  4341. 1002(scheduling)X
  4342. 1378(algorithm)X
  4343. 1718(is)X
  4344. 1799(applied;)X
  4345. 2085(if)X
  4346. 2162(the)X
  4347. 2288(lock)X
  4348. 2454(for)X
  4349. 2576(which)X
  4350. 2800(a)X
  4351. 2864(process)X
  4352. 3133(was)X
  4353. 3286(waiting)X
  4354. 3554(becomes)X
  4355. 3863(available,)X
  4356. 4201(the)X
  4357. 555 2445(process)N
  4358. 824(is)X
  4359. 905(made)X
  4360. 1107(runnable.)X
  4361. 1456(It)X
  4362. 1533(would)X
  4363. 1761(have)X
  4364. 1941(been)X
  4365. 2121(possible)X
  4366. 2411(to)X
  4367. 2501(change)X
  4368. 2757(the)X
  4369. 2883(kernel's)X
  4370. 3170(process)X
  4371. 3439(scheduler)X
  4372. 3775(to)X
  4373. 3865(interact)X
  4374. 4134(more)X
  4375. 555 2535(ef256ciently)N
  4376. 900(with)X
  4377. 1062(the)X
  4378. 1180(lock)X
  4379. 1338(manager,)X
  4380. 1655(but)X
  4381. 1777(doing)X
  4382. 1979(so)X
  4383. 2070(would)X
  4384. 2290(have)X
  4385. 2462(compromised)X
  4386. 2918(our)X
  4387. 3045(commitment)X
  4388. 3469(to)X
  4389. 3551(a)X
  4390. 3607(user-level)X
  4391. 3944(package.)X
  4392. 3 f
  4393. 555 2721(3.2.5.)N
  4394. 775(The)X
  4395. 928(Transaction)X
  4396. 1361(Manager)X
  4397. 1 f
  4398. 755 2844(The)N
  4399. 3 f
  4400. 901(Transaction)X
  4401. 1335(Manager)X
  4402. 1 f
  4403. 1668(provides)X
  4404. 1965(the)X
  4405. 2084(standard)X
  4406. 2377(interface)X
  4407. 2680(of)X
  4408. 2 f
  4409. 2768(txn_begin)X
  4410. 1 f
  4411. 3084(,)X
  4412. 2 f
  4413. 3125(txn_commit)X
  4414. 1 f
  4415. 3499(,)X
  4416. 3540(and)X
  4417. 2 f
  4418. 3676(txn_abort)X
  4419. 1 f
  4420. 3987(.)X
  4421. 4047(It)X
  4422. 4116(keeps)X
  4423. 555 2934(track)N
  4424. 742(of)X
  4425. 835(all)X
  4426. 941(active)X
  4427. 1159(transactions,)X
  4428. 1588(assigns)X
  4429. 1845(unique)X
  4430. 2089(transaction)X
  4431. 2467(identi256ers,)X
  4432. 2833(and)X
  4433. 2974(directs)X
  4434. 3213(the)X
  4435. 3336(abort)X
  4436. 3526(and)X
  4437. 3667(commit)X
  4438. 3936(processing.)X
  4439. 555 3024(When)N
  4440. 772(a)X
  4441. 2 f
  4442. 833(txn_begin)X
  4443. 1 f
  4444. 1174(is)X
  4445. 1252(issued,)X
  4446. 1497(the)X
  4447. 3 f
  4448. 1620(Transaction)X
  4449. 2058(Manager)X
  4450. 1 f
  4451. 2395(assigns)X
  4452. 2651(the)X
  4453. 2773(next)X
  4454. 2935(available)X
  4455. 3249(transaction)X
  4456. 3625(identi256er,)X
  4457. 3958(allocates)X
  4458. 4263(a)X
  4459. 555 3114(per-process)N
  4460. 948(transaction)X
  4461. 1322(structure)X
  4462. 1625(in)X
  4463. 1709(shared)X
  4464. 1941(memory,)X
  4465. 2249(increments)X
  4466. 2622(the)X
  4467. 2741(count)X
  4468. 2940(of)X
  4469. 3028(active)X
  4470. 3241(transactions,)X
  4471. 3665(and)X
  4472. 3802(returns)X
  4473. 4046(the)X
  4474. 4165(new)X
  4475. 555 3204(transaction)N
  4476. 937(identi256er)X
  4477. 1256(to)X
  4478. 1348(the)X
  4479. 1476(calling)X
  4480. 1724(process.)X
  4481. 2034(The)X
  4482. 2188(in-memory)X
  4483. 2573(transaction)X
  4484. 2954(structure)X
  4485. 3264(contains)X
  4486. 3560(a)X
  4487. 3625(pointer)X
  4488. 3881(into)X
  4489. 4034(the)X
  4490. 4161(lock)X
  4491. 555 3294(table)N
  4492. 734(for)X
  4493. 851(locks)X
  4494. 1043(held)X
  4495. 1204(by)X
  4496. 1307(this)X
  4497. 1445(transaction,)X
  4498. 1840(the)X
  4499. 1961(last)X
  4500. 2095(log)X
  4501. 2220(sequence)X
  4502. 2538(number,)X
  4503. 2826(a)X
  4504. 2885(transaction)X
  4505. 3260(state)X
  4506. 3430(()X
  4507. 2 f
  4508. 3457(idle)X
  4509. 1 f
  4510. (,)S
  4511. 2 f
  4512. 3620(running)X
  4513. 1 f
  4514. 3873(,)X
  4515. 2 f
  4516. 3915(aborting)X
  4517. 1 f
  4518. 4190(,)X
  4519. 4232(or)X
  4520. 2 f
  4521. 555 3384(committing))N
  4522. 1 f
  4523. 942(,)X
  4524. 982(an)X
  4525. 1078(error)X
  4526. 1255(code,)X
  4527. 1447(and)X
  4528. 1583(a)X
  4529. 1639(semaphore)X
  4530. 2007(identi256er.)X
  4531. 755 3507(At)N
  4532. 859(commit,)X
  4533. 1147(the)X
  4534. 3 f
  4535. 1269(Transaction)X
  4536. 1706(Manager)X
  4537. 1 f
  4538. 2042(calls)X
  4539. 2 f
  4540. 2213(log_commit)X
  4541. 1 f
  4542. 2615(to)X
  4543. 2700(record)X
  4544. 2929(the)X
  4545. 3050(end)X
  4546. 3189(of)X
  4547. 3279(transaction)X
  4548. 3654(and)X
  4549. 3793(to)X
  4550. 3878(257ush)X
  4551. 4056(the)X
  4552. 4177(log.)X
  4553. 555 3597(Then)N
  4554. 743(it)X
  4555. 810(directs)X
  4556. 1047(the)X
  4557. 3 f
  4558. 1168(Lock)X
  4559. 1364(Manager)X
  4560. 1 f
  4561. 1699(to)X
  4562. 1784(release)X
  4563. 2031(all)X
  4564. 2134(locks)X
  4565. 2325(associated)X
  4566. 2677(with)X
  4567. 2841(the)X
  4568. 2961(given)X
  4569. 3161(transaction.)X
  4570. 3575(If)X
  4571. 3651(a)X
  4572. 3709(transaction)X
  4573. 4083(aborts,)X
  4574. 555 3687(the)N
  4575. 3 f
  4576. 680(Transaction)X
  4577. 1120(Manager)X
  4578. 1 f
  4579. 1459(calls)X
  4580. 1633(on)X
  4581. 2 f
  4582. 1739(log_unroll)X
  4583. 1 f
  4584. 2102(to)X
  4585. 2190(read)X
  4586. 2355(the)X
  4587. 2479(transaction's)X
  4588. 2915(log)X
  4589. 3043(records)X
  4590. 3306(and)X
  4591. 3448(undo)X
  4592. 3634(any)X
  4593. 3776(modi256cations)X
  4594. 4237(to)X
  4595. 555 3777(the)N
  4596. 673(database.)X
  4597. 1010(As)X
  4598. 1119(in)X
  4599. 1201(the)X
  4600. 1319(commit)X
  4601. 1583(case,)X
  4602. 1762(it)X
  4603. 1826(then)X
  4604. 1984(calls)X
  4605. 2 f
  4606. 2151(lock_unlock_all)X
  4607. 1 f
  4608. 2683(to)X
  4609. 2765(release)X
  4610. 3009(the)X
  4611. 3127(transaction's)X
  4612. 3557(locks.)X
  4613. 3 f
  4614. 555 3963(3.2.6.)N
  4615. 775(The)X
  4616. 928(Record)X
  4617. 1198(Manager)X
  4618. 1 f
  4619. 755 4086(The)N
  4620. 3 f
  4621. 919(Record)X
  4622. 1208(Manager)X
  4623. 1 f
  4624. 1559(supports)X
  4625. 1869(the)X
  4626. 2006(abstraction)X
  4627. 2397(of)X
  4628. 2503(reading)X
  4629. 2783(and)X
  4630. 2938(writing)X
  4631. 3208(records)X
  4632. 3484(to)X
  4633. 3585(a)X
  4634. 3660(database.)X
  4635. 3996(We)X
  4636. 4147(have)X
  4637. 555 4176(modi256ed)N
  4638. 861(the)X
  4639. 981(the)X
  4640. 1101(database)X
  4641. 1399(access)X
  4642. 1626(routines)X
  4643. 3 f
  4644. 1905(db)X
  4645. 1 f
  4646. 1993((3))X
  4647. 2108([BSD91])X
  4648. 2418(to)X
  4649. 2501(call)X
  4650. 2638(the)X
  4651. 2757(log,)X
  4652. 2900(lock,)X
  4653. 3079(and)X
  4654. 3216(buffer)X
  4655. 3434(managers.)X
  4656. 3803(In)X
  4657. 3891(order)X
  4658. 4082(to)X
  4659. 4165(pro-)X
  4660. 555 4266(vide)N
  4661. 718(functionality)X
  4662. 1152(to)X
  4663. 1239(perform)X
  4664. 1523(undo)X
  4665. 1708(and)X
  4666. 1849(redo,)X
  4667. 2037(the)X
  4668. 3 f
  4669. 2160(Record)X
  4670. 2434(Manager)X
  4671. 1 f
  4672. 2770(de256nes)X
  4673. 3021(a)X
  4674. 3081(collection)X
  4675. 3421(of)X
  4676. 3512(log)X
  4677. 3638(record)X
  4678. 3868(types)X
  4679. 4061(and)X
  4680. 4201(the)X
  4681. 555 4356(associated)N
  4682. 920(undo)X
  4683. 1115(and)X
  4684. 1266(redo)X
  4685. 1444(routines.)X
  4686. 1777(The)X
  4687. 3 f
  4688. 1937(Log)X
  4689. 2105(Manager)X
  4690. 1 f
  4691. 2452(performs)X
  4692. 2777(a)X
  4693. 2848(table)X
  4694. 3039(lookup)X
  4695. 3296(on)X
  4696. 3411(the)X
  4697. 3543(record)X
  4698. 3783(type)X
  4699. 3955(to)X
  4700. 4051(call)X
  4701. 4201(the)X
  4702. 555 4446(appropriate)N
  4703. 951(routines.)X
  4704. 1299(For)X
  4705. 1440(example,)X
  4706. 1762(the)X
  4707. 1890(B-tree)X
  4708. 2121(access)X
  4709. 2356(method)X
  4710. 2625(requires)X
  4711. 2913(two)X
  4712. 3062(log)X
  4713. 3193(record)X
  4714. 3428(types:)X
  4715. 3648(insert)X
  4716. 3855(and)X
  4717. 4000(delete.)X
  4718. 4241(A)X
  4719. 555 4536(replace)N
  4720. 808(operation)X
  4721. 1131(is)X
  4722. 1204(implemented)X
  4723. 1642(as)X
  4724. 1729(a)X
  4725. 1785(delete)X
  4726. 1997(followed)X
  4727. 2302(by)X
  4728. 2402(an)X
  4729. 2498(insert)X
  4730. 2696(and)X
  4731. 2832(is)X
  4732. 2905(logged)X
  4733. 3143(accordingly.)X
  4734. 3 f
  4735. 555 4722(3.3.)N
  4736. 715(Application)X
  4737. 1134(Architectures)X
  4738. 1 f
  4739. 755 4845(The)N
  4740. 907(structure)X
  4741. 1215(of)X
  4742. 1309(LIBTP)X
  4743. 1558(allows)X
  4744. 1794(application)X
  4745. 2177(designers)X
  4746. 2507(to)X
  4747. 2596(trade)X
  4748. 2784(off)X
  4749. 2905(performance)X
  4750. 3339(and)X
  4751. 3481(protection.)X
  4752. 3872(Since)X
  4753. 4076(a)X
  4754. 4138(large)X
  4755. 555 4935(portion)N
  4756. 810(of)X
  4757. 901(LIBTP's)X
  4758. 1205(functionality)X
  4759. 1638(is)X
  4760. 1715(provided)X
  4761. 2024(by)X
  4762. 2128(managing)X
  4763. 2468(structures)X
  4764. 2804(in)X
  4765. 2889(shared)X
  4766. 3122(memory,)X
  4767. 3432(its)X
  4768. 3530(structures)X
  4769. 3865(are)X
  4770. 3987(subject)X
  4771. 4237(to)X
  4772. 555 5025(corruption)N
  4773. 926(by)X
  4774. 1043(applications)X
  4775. 1467(when)X
  4776. 1678(the)X
  4777. 1813(library)X
  4778. 2064(is)X
  4779. 2154(linked)X
  4780. 2391(directly)X
  4781. 2673(with)X
  4782. 2852(the)X
  4783. 2987(application.)X
  4784. 3420(For)X
  4785. 3568(this)X
  4786. 3720(reason,)X
  4787. 3987(LIBTP)X
  4788. 4246(is)X
  4789. 555 5115(designed)N
  4790. 864(to)X
  4791. 950(allow)X
  4792. 1152(compilation)X
  4793. 1558(into)X
  4794. 1706(a)X
  4795. 1766(separate)X
  4796. 2053(server)X
  4797. 2273(process)X
  4798. 2537(which)X
  4799. 2756(may)X
  4800. 2917(be)X
  4801. 3016(accessed)X
  4802. 3321(via)X
  4803. 3442(a)X
  4804. 3501(socket)X
  4805. 3729(interface.)X
  4806. 4094(In)X
  4807. 4184(this)X
  4808. 555 5205(way)N
  4809. 712(LIBTP's)X
  4810. 1015(data)X
  4811. 1172(structures)X
  4812. 1507(are)X
  4813. 1629(protected)X
  4814. 1951(from)X
  4815. 2130(application)X
  4816. 2509(code,)X
  4817. 2704(but)X
  4818. 2829(communication)X
  4819. 3349(overhead)X
  4820. 3666(is)X
  4821. 3741(increased.)X
  4822. 4107(When)X
  4823. 555 5295(applications)N
  4824. 975(are)X
  4825. 1107(trusted,)X
  4826. 1377(LIBTP)X
  4827. 1631(may)X
  4828. 1801(be)X
  4829. 1909(compiled)X
  4830. 2239(directly)X
  4831. 2516(into)X
  4832. 2672(the)X
  4833. 2802(application)X
  4834. 3190(providing)X
  4835. 3533(improved)X
  4836. 3872(performance.)X
  4837. 555 5385(Figures)N
  4838. 815(two)X
  4839. 955(and)X
  4840. 1091(three)X
  4841. 1272(show)X
  4842. 1461(the)X
  4843. 1579(two)X
  4844. 1719(alternate)X
  4845. 2016(application)X
  4846. 2392(architectures.)X
  4847. 755 5508(There)N
  4848. 964(are)X
  4849. 1084(potentially)X
  4850. 1447(two)X
  4851. 1588(modes)X
  4852. 1818(in)X
  4853. 1901(which)X
  4854. 2118(one)X
  4855. 2255(might)X
  4856. 2462(use)X
  4857. 2590(LIBTP)X
  4858. 2833(in)X
  4859. 2916(a)X
  4860. 2972(server)X
  4861. 3189(based)X
  4862. 3392(architecture.)X
  4863. 3832(In)X
  4864. 3919(the)X
  4865. 4037(256rst,)X
  4866. 4201(the)X
  4867. 555 5598(server)N
  4868. 778(would)X
  4869. 1004(provide)X
  4870. 1275(the)X
  4871. 1399(capability)X
  4872. 1741(to)X
  4873. 1829(respond)X
  4874. 2109(to)X
  4875. 2197(requests)X
  4876. 2486(to)X
  4877. 2574(each)X
  4878. 2747(of)X
  4879. 2839(the)X
  4880. 2962(low)X
  4881. 3107(level)X
  4882. 3288(modules)X
  4883. 3584((lock,)X
  4884. 3794(log,)X
  4885. 3941(buffer,)X
  4886. 4183(and)X
  4887. 555 5688(transaction)N
  4888. 944(managers).)X
  4889. 1356(Unfortunately,)X
  4890. 1863(the)X
  4891. 1998(performance)X
  4892. 2442(of)X
  4893. 2546(such)X
  4894. 2730(a)X
  4895. 2803(system)X
  4896. 3062(is)X
  4897. 3152(likely)X
  4898. 3371(to)X
  4899. 3470(be)X
  4900. 3583(blindingly)X
  4901. 3947(slow)X
  4902. 4134(since)X
  4903. 7 p
  4904. %%Page: 7 7
  4905. 10 s 10 xH 0 xS 1 f
  4906. 3 f
  4907. 1 f
  4908. 1 Dt
  4909. 1864 1125 MXY
  4910. 15 -26 Dl
  4911. -15 10 Dl
  4912. -14 -10 Dl
  4913. 14 26 Dl
  4914. 0 -266 Dl
  4915. 1315 1125 MXY
  4916. 15 -26 Dl
  4917. -15 10 Dl
  4918. -14 -10 Dl
  4919. 14 26 Dl
  4920. 0 -266 Dl
  4921. 3 Dt
  4922. 1133 1125 MXY
  4923. 0 798 Dl
  4924. 931 0 Dl
  4925. 0 -798 Dl
  4926. -931 0 Dl
  4927. 1 Dt
  4928. 1266 1257 MXY
  4929. 0 133 Dl
  4930. 665 0 Dl
  4931. 0 -133 Dl
  4932. -665 0 Dl
  4933. 3 f
  4934. 8 s
  4935. 1513 1351(driver)N
  4936. 1502 1617(LIBTP)N
  4937. 1266 1390 MXY
  4938. 0 400 Dl
  4939. 665 0 Dl
  4940. 0 -400 Dl
  4941. -665 0 Dl
  4942. 3 Dt
  4943. 1133 726 MXY
  4944. 0 133 Dl
  4945. 931 0 Dl
  4946. 0 -133 Dl
  4947. -931 0 Dl
  4948. 1 f
  4949. 1029 1098(txn_abort)N
  4950. 964 1015(txn_commit)N
  4951. 1018 932(txn_begin)N
  4952. 1910 1015(db_ops)N
  4953. 3 f
  4954. 1308 820(Application)N
  4955. 1645(Program)X
  4956. 1398 1218(Server)N
  4957. 1594(Process)X
  4958. 1 f
  4959. 1390 986(socket)N
  4960. 1569(interface)X
  4961. 1 Dt
  4962. 1848 967 MXY
  4963. -23 -14 Dl
  4964. 8 14 Dl
  4965. -8 15 Dl
  4966. 23 -15 Dl
  4967. -50 0 Dl
  4968. 1324 MX
  4969. 23 15 Dl
  4970. -9 -15 Dl
  4971. 9 -14 Dl
  4972. -23 14 Dl
  4973. 50 0 Dl
  4974. 3 Dt
  4975. 2862 859 MXY
  4976. 0 1064 Dl
  4977. 932 0 Dl
  4978. 0 -1064 Dl
  4979. -932 0 Dl
  4980. 1 Dt
  4981. 3178 1390 MXY
  4982. 24 -12 Dl
  4983. -17 0 Dl
  4984. -8 -15 Dl
  4985. 1 27 Dl
  4986. 150 -265 Dl
  4987. 3494 1390 MXY
  4988. 0 -27 Dl
  4989. -8 15 Dl
  4990. -16 1 Dl
  4991. 24 11 Dl
  4992. -166 -265 Dl
  4993. 3 f
  4994. 3232 1617(LIBTP)N
  4995. 2995 1390 MXY
  4996. 0 400 Dl
  4997. 666 0 Dl
  4998. 0 -400 Dl
  4999. -666 0 Dl
  5000. 992 MY
  5001. 0 133 Dl
  5002. 666 0 Dl
  5003. 0 -133 Dl
  5004. -666 0 Dl
  5005. 3168 1086(Application)N
  5006. 1 f
  5007. 2939 1201(txn_begin)N
  5008. 2885 1284(txn_commit)N
  5009. 2950 1368(txn_abort)N
  5010. 3465 1284(db_ops)N
  5011. 3 f
  5012. 3155 766(Single)N
  5013. 3339(Process)X
  5014. 3 Dt
  5015. -1 Ds
  5016. 811 2100(Figure)N
  5017. 1023(2:)X
  5018. 1107(Server)X
  5019. 1318(Architecture.)X
  5020. 1 f
  5021. 1727(In)X
  5022. 1811(this)X
  5023. 1934(con256guration,)X
  5024. 811 2190(the)N
  5025. 916(library)X
  5026. 1113(is)X
  5027. 1183(loaded)X
  5028. 1380(into)X
  5029. 1507(a)X
  5030. 1562(server)X
  5031. 1744(process)X
  5032. 1962(which)X
  5033. 2145(is)X
  5034. 2214(ac-)X
  5035. 811 2280(cessed)N
  5036. 993(via)X
  5037. 1087(a)X
  5038. 1131(socket)X
  5039. 1310(interface.)X
  5040. 3 f
  5041. 2563 2100(Figure)N
  5042. 2803(3:)X
  5043. 2914(Single)X
  5044. 3140(Process)X
  5045. 3403(Architecture.)X
  5046. 1 f
  5047. 3839(In)X
  5048. 3950(this)X
  5049. 2563 2190(con256guration,)N
  5050. 2948(the)X
  5051. 3053(library)X
  5052. 3250(routines)X
  5053. 3483(are)X
  5054. 3587(loaded)X
  5055. 3784(as)X
  5056. 3864(part)X
  5057. 3990(of)X
  5058. 2563 2280(the)N
  5059. 2657(application)X
  5060. 2957(and)X
  5061. 3065(accessed)X
  5062. 3303(via)X
  5063. 3397(a)X
  5064. 3441(subroutine)X
  5065. 3727(interface.)X
  5066. 10 s
  5067. 10 f
  5068. 555 2403(h)N
  5069. 579(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)X
  5070. 1 f
  5071. 555 2679(modifying)N
  5072. 909(a)X
  5073. 966(piece)X
  5074. 1157(of)X
  5075. 1245(data)X
  5076. 1400(would)X
  5077. 1621(require)X
  5078. 1870(three)X
  5079. 2051(or)X
  5080. 2138(possibly)X
  5081. 2424(four)X
  5082. 2578(separate)X
  5083. 2862(communications:)X
  5084. 3433(one)X
  5085. 3569(to)X
  5086. 3651(lock)X
  5087. 3809(the)X
  5088. 3927(data,)X
  5089. 4101(one)X
  5090. 4237(to)X
  5091. 555 2769(obtain)N
  5092. 781(the)X
  5093. 905(data,)X
  5094. 1085(one)X
  5095. 1227(to)X
  5096. 1315(log)X
  5097. 1443(the)X
  5098. 1567(modi256cation,)X
  5099. 2017(and)X
  5100. 2159(possibly)X
  5101. 2451(one)X
  5102. 2593(to)X
  5103. 2681(transmit)X
  5104. 2969(the)X
  5105. 3093(modi256ed)X
  5106. 3403(data.)X
  5107. 3583(Figure)X
  5108. 3817(four)X
  5109. 3976(shows)X
  5110. 4201(the)X
  5111. 555 2859(relative)N
  5112. 826(performance)X
  5113. 1263(for)X
  5114. 1387(retrieving)X
  5115. 1728(a)X
  5116. 1793(single)X
  5117. 2013(record)X
  5118. 2248(using)X
  5119. 2450(the)X
  5120. 2577(record)X
  5121. 2812(level)X
  5122. 2997(call)X
  5123. 3142(versus)X
  5124. 3376(using)X
  5125. 3578(the)X
  5126. 3705(lower)X
  5127. 3917(level)X
  5128. 4102(buffer)X
  5129. 555 2949(management)N
  5130. 987(and)X
  5131. 1125(locking)X
  5132. 1387(calls.)X
  5133. 1616(The)X
  5134. 1763(2:1)X
  5135. 1887(ratio)X
  5136. 2056(observed)X
  5137. 2367(in)X
  5138. 2450(the)X
  5139. 2569(single)X
  5140. 2781(process)X
  5141. 3043(case)X
  5142. 3203(re257ects)X
  5143. 3456(the)X
  5144. 3575(additional)X
  5145. 3916(overhead)X
  5146. 4232(of)X
  5147. 555 3039(parsing)N
  5148. 819(eight)X
  5149. 1006(commands)X
  5150. 1380(rather)X
  5151. 1595(than)X
  5152. 1760(one)X
  5153. 1903(while)X
  5154. 2108(the)X
  5155. 2233(3:1)X
  5156. 2362(ratio)X
  5157. 2536(observed)X
  5158. 2853(in)X
  5159. 2942(the)X
  5160. 3067(client/server)X
  5161. 3491(architecture)X
  5162. 3898(re257ects)X
  5163. 4157(both)X
  5164. 555 3129(the)N
  5165. 679(parsing)X
  5166. 941(and)X
  5167. 1083(the)X
  5168. 1207(communication)X
  5169. 1731(overheard.)X
  5170. 2118(Although)X
  5171. 2445(there)X
  5172. 2631(may)X
  5173. 2794(be)X
  5174. 2895(applications)X
  5175. 3307(which)X
  5176. 3528(could)X
  5177. 3731(tolerate)X
  5178. 3997(such)X
  5179. 4169(per-)X
  5180. 555 3219(formance,)N
  5181. 904(it)X
  5182. 973(seems)X
  5183. 1194(far)X
  5184. 1309(more)X
  5185. 1499(feasible)X
  5186. 1774(to)X
  5187. 1861(support)X
  5188. 2126(a)X
  5189. 2187(higher)X
  5190. 2417(level)X
  5191. 2597(interface,)X
  5192. 2923(such)X
  5193. 3094(as)X
  5194. 3185(that)X
  5195. 3329(provided)X
  5196. 3638(by)X
  5197. 3742(a)X
  5198. 3802(query)X
  5199. 4009(language)X
  5200. 555 3309(()N
  5201. 2 f
  5202. 582(e.g.)X
  5203. 1 f
  5204. 718(SQL)X
  5205. 889([SQL86]).)X
  5206. 755 3432(Although)N
  5207. 1081(LIBTP)X
  5208. 1327(does)X
  5209. 1498(not)X
  5210. 1624(have)X
  5211. 1800(an)X
  5212. 1900(SQL)X
  5213. 2075(parser,)X
  5214. 2316(we)X
  5215. 2433(have)X
  5216. 2608(built)X
  5217. 2777(a)X
  5218. 2836(server)X
  5219. 3056(application)X
  5220. 3435(using)X
  5221. 3631(the)X
  5222. 3752(toolkit)X
  5223. 3983(command)X
  5224. 555 3522(language)N
  5225. 882((TCL))X
  5226. 1124([OUST90].)X
  5227. 1544(The)X
  5228. 1706(server)X
  5229. 1940(supports)X
  5230. 2248(a)X
  5231. 2321(command)X
  5232. 2674(line)X
  5233. 2831(interface)X
  5234. 3150(similar)X
  5235. 3409(to)X
  5236. 3508(the)X
  5237. 3643(subroutine)X
  5238. 4017(interface)X
  5239. 555 3612(de256ned)N
  5240. 811(in)X
  5241. 3 f
  5242. 893(db)X
  5243. 1 f
  5244. 981((3).)X
  5245. 1135(Since)X
  5246. 1333(it)X
  5247. 1397(is)X
  5248. 1470(based)X
  5249. 1673(on)X
  5250. 1773(TCL,)X
  5251. 1964(it)X
  5252. 2028(provides)X
  5253. 2324(control)X
  5254. 2571(structures)X
  5255. 2903(as)X
  5256. 2990(well.)X
  5257. 3 f
  5258. 555 3798(4.)N
  5259. 655(Implementation)X
  5260. 1 f
  5261. 3 f
  5262. 555 3984(4.1.)N
  5263. 715(Locking)X
  5264. 1014(and)X
  5265. 1162(Deadlock)X
  5266. 1502(Detection)X
  5267. 1 f
  5268. 755 4107(LIBTP)N
  5269. 1007(uses)X
  5270. 1175(two-phase)X
  5271. 1535(locking)X
  5272. 1805(for)X
  5273. 1929(user)X
  5274. 2093(data.)X
  5275. 2297(Strictly)X
  5276. 2562(speaking,)X
  5277. 2897(the)X
  5278. 3024(two)X
  5279. 3173(phases)X
  5280. 3416(in)X
  5281. 3507(two-phase)X
  5282. 3866(locking)X
  5283. 4135(are)X
  5284. 4263(a)X
  5285. 3 f
  5286. 555 4197(grow)N
  5287. 1 f
  5288. 756(phase,)X
  5289. 986(during)X
  5290. 1221(which)X
  5291. 1443(locks)X
  5292. 1638(are)X
  5293. 1763(acquired,)X
  5294. 2086(and)X
  5295. 2228(a)X
  5296. 3 f
  5297. 2290(shrink)X
  5298. 1 f
  5299. 2537(phase,)X
  5300. 2766(during)X
  5301. 3001(which)X
  5302. 3223(locks)X
  5303. 3418(are)X
  5304. 3543(released.)X
  5305. 3873(No)X
  5306. 3997(lock)X
  5307. 4161(may)X
  5308. 555 4287(ever)N
  5309. 720(be)X
  5310. 822(acquired)X
  5311. 1124(during)X
  5312. 1358(the)X
  5313. 1481(shrink)X
  5314. 1706(phase.)X
  5315. 1954(The)X
  5316. 2104(grow)X
  5317. 2294(phase)X
  5318. 2502(lasts)X
  5319. 2669(until)X
  5320. 2840(the)X
  5321. 2963(256rst)X
  5322. 3112(release,)X
  5323. 3381(which)X
  5324. 3602(marks)X
  5325. 3823(the)X
  5326. 3946(start)X
  5327. 4109(of)X
  5328. 4201(the)X
  5329. 555 4377(shrink)N
  5330. 780(phase.)X
  5331. 1028(In)X
  5332. 1120(practice,)X
  5333. 1420(the)X
  5334. 1543(grow)X
  5335. 1733(phase)X
  5336. 1941(lasts)X
  5337. 2108(for)X
  5338. 2227(the)X
  5339. 2350(duration)X
  5340. 2642(of)X
  5341. 2734(a)X
  5342. 2795(transaction)X
  5343. 3172(in)X
  5344. 3259(LIBTP)X
  5345. 3506(and)X
  5346. 3647(in)X
  5347. 3734(commercial)X
  5348. 4138(data-)X
  5349. 555 4467(base)N
  5350. 721(systems.)X
  5351. 1037(The)X
  5352. 1184(shrink)X
  5353. 1406(phase)X
  5354. 1611(takes)X
  5355. 1798(place)X
  5356. 1990(during)X
  5357. 2221(transaction)X
  5358. 2595(commit)X
  5359. 2861(or)X
  5360. 2950(abort.)X
  5361. 3177(This)X
  5362. 3341(means)X
  5363. 3568(that)X
  5364. 3710(locks)X
  5365. 3901(are)X
  5366. 4022(acquired)X
  5367. 555 4557(on)N
  5368. 655(demand)X
  5369. 929(during)X
  5370. 1158(the)X
  5371. 1276(lifetime)X
  5372. 1545(of)X
  5373. 1632(a)X
  5374. 1688(transaction,)X
  5375. 2080(and)X
  5376. 2216(held)X
  5377. 2374(until)X
  5378. 2540(commit)X
  5379. 2804(time,)X
  5380. 2986(at)X
  5381. 3064(which)X
  5382. 3280(point)X
  5383. 3464(all)X
  5384. 3564(locks)X
  5385. 3753(are)X
  5386. 3872(released.)X
  5387. 755 4680(If)N
  5388. 832(multiple)X
  5389. 1121(transactions)X
  5390. 1527(are)X
  5391. 1649(active)X
  5392. 1864(concurrently,)X
  5393. 2313(deadlocks)X
  5394. 2657(can)X
  5395. 2792(occur)X
  5396. 2994(and)X
  5397. 3133(must)X
  5398. 3311(be)X
  5399. 3410(detected)X
  5400. 3701(and)X
  5401. 3840(resolved.)X
  5402. 4174(The)X
  5403. 555 4770(lock)N
  5404. 715(table)X
  5405. 893(can)X
  5406. 1027(be)X
  5407. 1125(thought)X
  5408. 1391(of)X
  5409. 1480(as)X
  5410. 1569(a)X
  5411. 1627(representation)X
  5412. 2104(of)X
  5413. 2193(a)X
  5414. 2251(directed)X
  5415. 2532(graph.)X
  5416. 2777(The)X
  5417. 2924(nodes)X
  5418. 3133(in)X
  5419. 3216(the)X
  5420. 3335(graph)X
  5421. 3539(are)X
  5422. 3659(transactions.)X
  5423. 4103(Edges)X
  5424. 555 4860(represent)N
  5425. 878(the)X
  5426. 3 f
  5427. 1004(waits-for)X
  5428. 1 f
  5429. 1340(relation)X
  5430. 1613(between)X
  5431. 1909(transactions;)X
  5432. 2342(if)X
  5433. 2419(transaction)X
  5434. 2 f
  5435. 2799(A)X
  5436. 1 f
  5437. 2876(is)X
  5438. 2957(waiting)X
  5439. 3225(for)X
  5440. 3347(a)X
  5441. 3411(lock)X
  5442. 3577(held)X
  5443. 3743(by)X
  5444. 3851(transaction)X
  5445. 2 f
  5446. 4230(B)X
  5447. 1 f
  5448. 4279(,)X
  5449. 555 4950(then)N
  5450. 716(a)X
  5451. 775(directed)X
  5452. 1057(edge)X
  5453. 1232(exists)X
  5454. 1437(from)X
  5455. 2 f
  5456. 1616(A)X
  5457. 1 f
  5458. 1687(to)X
  5459. 2 f
  5460. 1771(B)X
  5461. 1 f
  5462. 1842(in)X
  5463. 1926(the)X
  5464. 2046(graph.)X
  5465. 2291(A)X
  5466. 2371(deadlock)X
  5467. 2683(exists)X
  5468. 2887(if)X
  5469. 2958(a)X
  5470. 3016(cycle)X
  5471. 3208(appears)X
  5472. 3476(in)X
  5473. 3560(the)X
  5474. 3680(graph.)X
  5475. 3925(By)X
  5476. 4040(conven-)X
  5477. 555 5040(tion,)N
  5478. 719(no)X
  5479. 819(transaction)X
  5480. 1191(ever)X
  5481. 1350(waits)X
  5482. 1539(for)X
  5483. 1653(a)X
  5484. 1709(lock)X
  5485. 1867(it)X
  5486. 1931(already)X
  5487. 2188(holds,)X
  5488. 2401(so)X
  5489. 2492(re257exive)X
  5490. 2793(edges)X
  5491. 2996(are)X
  5492. 3115(impossible.)X
  5493. 755 5163(A)N
  5494. 836(distinguished)X
  5495. 1285(process)X
  5496. 1549(monitors)X
  5497. 1856(the)X
  5498. 1977(lock)X
  5499. 2138(table,)X
  5500. 2337(searching)X
  5501. 2668(for)X
  5502. 2785(cycles.)X
  5503. 3048(The)X
  5504. 3195(frequency)X
  5505. 3539(with)X
  5506. 3703(which)X
  5507. 3921(this)X
  5508. 4058(process)X
  5509. 555 5253(runs)N
  5510. 716(is)X
  5511. 792(user-settable;)X
  5512. 1243(for)X
  5513. 1360(the)X
  5514. 1481(multi-user)X
  5515. 1833(tests)X
  5516. 1998(discussed)X
  5517. 2328(in)X
  5518. 2413(section)X
  5519. 2663(5.1.2,)X
  5520. 2866(it)X
  5521. 2933(has)X
  5522. 3063(been)X
  5523. 3238(set)X
  5524. 3350(to)X
  5525. 3435(wake)X
  5526. 3628(up)X
  5527. 3731(every)X
  5528. 3932(second,)X
  5529. 4197(but)X
  5530. 555 5343(more)N
  5531. 742(sophisticated)X
  5532. 1182(schedules)X
  5533. 1516(are)X
  5534. 1636(certainly)X
  5535. 1938(possible.)X
  5536. 2261(When)X
  5537. 2474(a)X
  5538. 2531(cycle)X
  5539. 2722(is)X
  5540. 2796(detected,)X
  5541. 3105(one)X
  5542. 3242(of)X
  5543. 3330(the)X
  5544. 3449(transactions)X
  5545. 3853(in)X
  5546. 3936(the)X
  5547. 4055(cycle)X
  5548. 4246(is)X
  5549. 555 5433(nominated)N
  5550. 917(and)X
  5551. 1057(aborted.)X
  5552. 1362(When)X
  5553. 1578(the)X
  5554. 1700(transaction)X
  5555. 2076(aborts,)X
  5556. 2315(it)X
  5557. 2382(rolls)X
  5558. 2547(back)X
  5559. 2722(its)X
  5560. 2820(changes)X
  5561. 3102(and)X
  5562. 3241(releases)X
  5563. 3519(its)X
  5564. 3617(locks,)X
  5565. 3829(thereby)X
  5566. 4093(break-)X
  5567. 555 5523(ing)N
  5568. 677(the)X
  5569. 795(cycle)X
  5570. 985(in)X
  5571. 1067(the)X
  5572. 1185(graph.)X
  5573. 8 p
  5574. %%Page: 8 8
  5575. 10 s 10 xH 0 xS 1 f
  5576. 3 f
  5577. 1 f
  5578. 4 Ds
  5579. 1 Dt
  5580. 1866 865 MXY
  5581. 1338 0 Dl
  5582. 1866 1031 MXY
  5583. 1338 0 Dl
  5584. 1866 1199 MXY
  5585. 1338 0 Dl
  5586. 1866 1366 MXY
  5587. 1338 0 Dl
  5588. 1866 1533 MXY
  5589. 1338 0 Dl
  5590. 1866 1701 MXY
  5591. 1338 0 Dl
  5592. -1 Ds
  5593. 5 Dt
  5594. 1866 1868 MXY
  5595. 1338 0 Dl
  5596. 1 Dt
  5597. 1 Di
  5598. 2981 MX
  5599.  2981 1868 lineto
  5600.  2981 1575 lineto
  5601.  3092 1575 lineto
  5602.  3092 1868 lineto
  5603.  2981 1868 lineto
  5604. closepath 21 2981 1575 3092 1868 Dp
  5605. 2646 MX
  5606.  2646 1868 lineto
  5607.  2646 949 lineto
  5608.  2758 949 lineto
  5609.  2758 1868 lineto
  5610.  2646 1868 lineto
  5611. closepath 14 2646 949 2758 1868 Dp
  5612. 2312 MX
  5613.  2312 1868 lineto
  5614.  2312 1701 lineto
  5615.  2423 1701 lineto
  5616.  2423 1868 lineto
  5617.  2312 1868 lineto
  5618. closepath 3 2312 1701 2423 1868 Dp
  5619. 1977 MX
  5620.  1977 1868 lineto
  5621.  1977 1512 lineto
  5622.  2089 1512 lineto
  5623.  2089 1868 lineto
  5624.  1977 1868 lineto
  5625. closepath 19 1977 1512 2089 1868 Dp
  5626. 3 f
  5627. 2640 2047(Client/Server)N
  5628. 1957(Single)X
  5629. 2185(Process)X
  5630. 7 s
  5631. 2957 1957(record)N
  5632. 2570(component)X
  5633. 2289(record)X
  5634. 1890(components)X
  5635. 1733 1724(.1)N
  5636. 1733 1556(.2)N
  5637. 1733 1389(.3)N
  5638. 1733 1222(.4)N
  5639. 1733 1055(.5)N
  5640. 1733 889(.6)N
  5641. 1590 726(Elapsed)N
  5642. 1794(Time)X
  5643. 1613 782((in)N
  5644. 1693(seconds))X
  5645. 3 Dt
  5646. -1 Ds
  5647. 8 s
  5648. 555 2255(Figure)N
  5649. 756(4:)X
  5650. 829(Comparison)X
  5651. 1187(of)X
  5652. 1260(High)X
  5653. 1416(and)X
  5654. 1540(Low)X
  5655. 1681(Level)X
  5656. 1850(Interfaces.)X
  5657. 1 f
  5658. 2174(Elapsed)X
  5659. 2395(time)X
  5660. 2528(in)X
  5661. 2597(seconds)X
  5662. 2818(to)X
  5663. 2887(perform)X
  5664. 3111(a)X
  5665. 3158(single)X
  5666. 3330(record)X
  5667. 3511(retrieval)X
  5668. 3742(from)X
  5669. 3885(a)X
  5670. 3932(command)X
  5671. 4203(line)X
  5672. 555 2345((rather)N
  5673. 751(than)X
  5674. 888(a)X
  5675. 943(procedural)X
  5676. 1241(interface))X
  5677. 1510(is)X
  5678. 1579(shown)X
  5679. 1772(on)X
  5680. 1862(the)X
  5681. 1966(y)X
  5682. 2024(axis.)X
  5683. 2185(The)X
  5684. 2310(``component'')X
  5685. 2704(numbers)X
  5686. 2950(re257ect)X
  5687. 3135(the)X
  5688. 3239(timings)X
  5689. 3458(when)X
  5690. 3622(the)X
  5691. 3726(record)X
  5692. 3914(is)X
  5693. 3983(retrieved)X
  5694. 4235(by)X
  5695. 555 2435(separate)N
  5696. 785(calls)X
  5697. 924(to)X
  5698. 996(the)X
  5699. 1096(lock)X
  5700. 1228(manager)X
  5701. 1469(and)X
  5702. 1583(buffer)X
  5703. 1760(manager)X
  5704. 2001(while)X
  5705. 2165(the)X
  5706. 2264(``record'')X
  5707. 2531(timings)X
  5708. 2745(were)X
  5709. 2889(obtained)X
  5710. 3130(by)X
  5711. 3215(using)X
  5712. 3375(a)X
  5713. 3424(single)X
  5714. 3598(call)X
  5715. 3711(to)X
  5716. 3782(the)X
  5717. 3881(record)X
  5718. 4064(manager.)X
  5719. 555 2525(The)N
  5720. 674(2:1)X
  5721. 776(ratio)X
  5722. 913(observed)X
  5723. 1163(for)X
  5724. 1257(the)X
  5725. 1355(single)X
  5726. 1528(process)X
  5727. 1739(case)X
  5728. 1868(is)X
  5729. 1930(a)X
  5730. 1977(re257ection)X
  5731. 2237(of)X
  5732. 2309(the)X
  5733. 2406(parsing)X
  5734. 2613(overhead)X
  5735. 2865(for)X
  5736. 2958(executing)X
  5737. 3225(eight)X
  5738. 3372(separate)X
  5739. 3599(commands)X
  5740. 3895(rather)X
  5741. 4062(than)X
  5742. 4191(one.)X
  5743. 555 2615(The)N
  5744. 673(additional)X
  5745. 948(factor)X
  5746. 1115(of)X
  5747. 1187(one)X
  5748. 1298(re257ected)X
  5749. 1536(in)X
  5750. 1605(the)X
  5751. 1702(3:1)X
  5752. 1803(ratio)X
  5753. 1939(for)X
  5754. 2031(the)X
  5755. 2127(client/server)X
  5756. 2460(architecture)X
  5757. 2794(is)X
  5758. 2855(due)X
  5759. 2965(to)X
  5760. 3033(the)X
  5761. 3129(communication)X
  5762. 3545(overhead.)X
  5763. 3828(The)X
  5764. 3945(true)X
  5765. 4062(ratios)X
  5766. 4222(are)X
  5767. 555 2705(actually)N
  5768. 775(worse)X
  5769. 945(since)X
  5770. 1094(the)X
  5771. 1190(component)X
  5772. 1492(timings)X
  5773. 1703(do)X
  5774. 1785(not)X
  5775. 1884(re257ect)X
  5776. 2060(the)X
  5777. 2155(search)X
  5778. 2334(times)X
  5779. 2490(within)X
  5780. 2671(each)X
  5781. 2804(page)X
  5782. 2941(or)X
  5783. 3011(the)X
  5784. 3106(time)X
  5785. 3237(required)X
  5786. 3466(to)X
  5787. 3533(transmit)X
  5788. 3760(the)X
  5789. 3855(page)X
  5790. 3992(between)X
  5791. 4221(the)X
  5792. 555 2795(two)N
  5793. 667(processes.)X
  5794. 10 s
  5795. 10 f
  5796. 555 2885(h)N
  5797. 579(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)X
  5798. 3 f
  5799. 555 3161(4.2.)N
  5800. 715(Group)X
  5801. 961(Commit)X
  5802. 1 f
  5803. 755 3284(Since)N
  5804. 959(the)X
  5805. 1083(log)X
  5806. 1211(must)X
  5807. 1392(be)X
  5808. 1494(257ushed)X
  5809. 1751(to)X
  5810. 1839(disk)X
  5811. 1997(at)X
  5812. 2080(commit)X
  5813. 2349(time,)X
  5814. 2536(disk)X
  5815. 2694(bandwidth)X
  5816. 3057(fundamentally)X
  5817. 3545(limits)X
  5818. 3751(the)X
  5819. 3874(rate)X
  5820. 4020(at)X
  5821. 4103(which)X
  5822. 555 3374(transactions)N
  5823. 959(complete.)X
  5824. 1314(Since)X
  5825. 1513(most)X
  5826. 1688(transactions)X
  5827. 2091(write)X
  5828. 2276(only)X
  5829. 2438(a)X
  5830. 2494(few)X
  5831. 2635(small)X
  5832. 2828(records)X
  5833. 3085(to)X
  5834. 3167(the)X
  5835. 3285(log,)X
  5836. 3427(the)X
  5837. 3545(last)X
  5838. 3676(page)X
  5839. 3848(of)X
  5840. 3935(the)X
  5841. 4053(log)X
  5842. 4175(will)X
  5843. 555 3464(be)N
  5844. 658(257ushed)X
  5845. 916(once)X
  5846. 1095(by)X
  5847. 1202(every)X
  5848. 1408(transaction)X
  5849. 1787(which)X
  5850. 2010(writes)X
  5851. 2233(to)X
  5852. 2322(it.)X
  5853. 2433(In)X
  5854. 2527(the)X
  5855. 2652(naive)X
  5856. 2853(implementation,)X
  5857. 3402(these)X
  5858. 3593(257ushes)X
  5859. 3841(would)X
  5860. 4067(happen)X
  5861. 555 3554(serially.)N
  5862. 755 3677(LIBTP)N
  5863. 1008(uses)X
  5864. 3 f
  5865. 1177(group)X
  5866. 1412(commit)X
  5867. 1 f
  5868. 1702([DEWI84])X
  5869. 2077(in)X
  5870. 2170(order)X
  5871. 2371(to)X
  5872. 2464(amortize)X
  5873. 2775(the)X
  5874. 2903(cost)X
  5875. 3062(of)X
  5876. 3159(one)X
  5877. 3305(synchronous)X
  5878. 3740(disk)X
  5879. 3903(write)X
  5880. 4098(across)X
  5881. 555 3767(multiple)N
  5882. 851(transactions.)X
  5883. 1304(Group)X
  5884. 1539(commit)X
  5885. 1812(provides)X
  5886. 2117(a)X
  5887. 2182(way)X
  5888. 2345(for)X
  5889. 2468(a)X
  5890. 2533(group)X
  5891. 2749(of)X
  5892. 2845(transactions)X
  5893. 3257(to)X
  5894. 3348(commit)X
  5895. 3621(simultaneously.)X
  5896. 4174(The)X
  5897. 555 3857(256rst)N
  5898. 709(several)X
  5899. 967(transactions)X
  5900. 1380(to)X
  5901. 1472(commit)X
  5902. 1745(write)X
  5903. 1939(their)X
  5904. 2115(changes)X
  5905. 2403(to)X
  5906. 2494(the)X
  5907. 2621(in-memory)X
  5908. 3006(log)X
  5909. 3137(page,)X
  5910. 3338(then)X
  5911. 3505(sleep)X
  5912. 3699(on)X
  5913. 3808(a)X
  5914. 3873(distinguished)X
  5915. 555 3947(semaphore.)N
  5916. 966(Later,)X
  5917. 1179(a)X
  5918. 1238(committing)X
  5919. 1629(transaction)X
  5920. 2004(257ushes)X
  5921. 2249(the)X
  5922. 2370(page)X
  5923. 2545(to)X
  5924. 2630(disk,)X
  5925. 2805(and)X
  5926. 2943(wakes)X
  5927. 3166(up)X
  5928. 3268(all)X
  5929. 3370(its)X
  5930. 3467(sleeping)X
  5931. 3756(peers.)X
  5932. 3988(The)X
  5933. 4135(point)X
  5934. 555 4037(at)N
  5935. 635(which)X
  5936. 853(changes)X
  5937. 1134(are)X
  5938. 1255(actually)X
  5939. 1531(written)X
  5940. 1780(is)X
  5941. 1855(determined)X
  5942. 2238(by)X
  5943. 2340(three)X
  5944. 2523(thresholds.)X
  5945. 2914(The)X
  5946. 3061(256rst)X
  5947. 3207(is)X
  5948. 3281(the)X
  5949. 2 f
  5950. 3400(group)X
  5951. 3612(threshold)X
  5952. 1 f
  5953. 3935(and)X
  5954. 4072(de256nes)X
  5955. 555 4127(the)N
  5956. 674(minimum)X
  5957. 1005(number)X
  5958. 1271(of)X
  5959. 1359(transactions)X
  5960. 1763(which)X
  5961. 1979(must)X
  5962. 2154(be)X
  5963. 2250(active)X
  5964. 2462(in)X
  5965. 2544(the)X
  5966. 2662(system)X
  5967. 2904(before)X
  5968. 3130(transactions)X
  5969. 3533(are)X
  5970. 3652(forced)X
  5971. 3878(to)X
  5972. 3960(participate)X
  5973. 555 4217(in)N
  5974. 646(a)X
  5975. 711(group)X
  5976. 927(commit.)X
  5977. 1240(The)X
  5978. 1394(second)X
  5979. 1646(is)X
  5980. 1728(the)X
  5981. 2 f
  5982. 1855(wait)X
  5983. 2021(threshold)X
  5984. 1 f
  5985. 2352(which)X
  5986. 2577(is)X
  5987. 2658(expressed)X
  5988. 3003(as)X
  5989. 3098(the)X
  5990. 3224(percentage)X
  5991. 3601(of)X
  5992. 3696(active)X
  5993. 3916(transactions)X
  5994. 555 4307(waiting)N
  5995. 826(to)X
  5996. 919(be)X
  5997. 1026(committed.)X
  5998. 1439(The)X
  5999. 1595(last)X
  6000. 1737(is)X
  6001. 1821(the)X
  6002. 2 f
  6003. 1950(logdelay)X
  6004. 2257(threshold)X
  6005. 1 f
  6006. 2590(which)X
  6007. 2816(indicates)X
  6008. 3131(how)X
  6009. 3299(much)X
  6010. 3507(un257ushed)X
  6011. 3848(log)X
  6012. 3980(should)X
  6013. 4223(be)X
  6014. 555 4397(allowed)N
  6015. 829(to)X
  6016. 911(accumulate)X
  6017. 1297(before)X
  6018. 1523(a)X
  6019. 1579(waiting)X
  6020. 1839(transaction's)X
  6021. 2289(commit)X
  6022. 2553(record)X
  6023. 2779(is)X
  6024. 2852(257ushed.)X
  6025. 755 4520(Group)N
  6026. 981(commit)X
  6027. 1246(can)X
  6028. 1379(substantially)X
  6029. 1803(improve)X
  6030. 2090(performance)X
  6031. 2517(for)X
  6032. 2631(high-concurrency)X
  6033. 3218(environments.)X
  6034. 3714(If)X
  6035. 3788(only)X
  6036. 3950(a)X
  6037. 4006(few)X
  6038. 4147(tran-)X
  6039. 555 4610(sactions)N
  6040. 836(are)X
  6041. 957(running,)X
  6042. 1248(it)X
  6043. 1314(is)X
  6044. 1389(unlikely)X
  6045. 1673(to)X
  6046. 1757(improve)X
  6047. 2046(things)X
  6048. 2263(at)X
  6049. 2343(all.)X
  6050. 2485(The)X
  6051. 2632(crossover)X
  6052. 2962(point)X
  6053. 3148(is)X
  6054. 3223(the)X
  6055. 3343(point)X
  6056. 3529(at)X
  6057. 3609(which)X
  6058. 3827(the)X
  6059. 3947(transaction)X
  6060. 555 4700(commit)N
  6061. 823(rate)X
  6062. 968(is)X
  6063. 1045(limited)X
  6064. 1295(by)X
  6065. 1399(the)X
  6066. 1521(bandwidth)X
  6067. 1883(of)X
  6068. 1974(the)X
  6069. 2096(device)X
  6070. 2330(on)X
  6071. 2434(which)X
  6072. 2654(the)X
  6073. 2776(log)X
  6074. 2902(resides.)X
  6075. 3189(If)X
  6076. 3267(processes)X
  6077. 3599(are)X
  6078. 3722(trying)X
  6079. 3937(to)X
  6080. 4023(257ush)X
  6081. 4201(the)X
  6082. 555 4790(log)N
  6083. 677(faster)X
  6084. 876(than)X
  6085. 1034(the)X
  6086. 1152(log)X
  6087. 1274(disk)X
  6088. 1427(can)X
  6089. 1559(accept)X
  6090. 1785(data,)X
  6091. 1959(then)X
  6092. 2117(group)X
  6093. 2324(commit)X
  6094. 2588(will)X
  6095. 2732(increase)X
  6096. 3016(the)X
  6097. 3134(commit)X
  6098. 3398(rate.)X
  6099. 3 f
  6100. 555 4976(4.3.)N
  6101. 715(Kernel)X
  6102. 971(Intervention)X
  6103. 1418(for)X
  6104. 1541(Synchronization)X
  6105. 1 f
  6106. 755 5099(Since)N
  6107. 954(LIBTP)X
  6108. 1197(uses)X
  6109. 1356(data)X
  6110. 1511(in)X
  6111. 1594(shared)X
  6112. 1825(memory)X
  6113. 2113(()X
  6114. 2 f
  6115. 2140(e.g.)X
  6116. 1 f
  6117. 2277(the)X
  6118. 2395(lock)X
  6119. 2553(table)X
  6120. 2729(and)X
  6121. 2865(buffer)X
  6122. 3082(pool))X
  6123. 3271(it)X
  6124. 3335(must)X
  6125. 3510(be)X
  6126. 3606(possible)X
  6127. 3888(for)X
  6128. 4002(a)X
  6129. 4058(process)X
  6130. 555 5189(to)N
  6131. 640(acquire)X
  6132. 900(exclusive)X
  6133. 1226(access)X
  6134. 1454(to)X
  6135. 1538(shared)X
  6136. 1770(data)X
  6137. 1926(in)X
  6138. 2010(order)X
  6139. 2202(to)X
  6140. 2286(prevent)X
  6141. 2549(corruption.)X
  6142. 2945(In)X
  6143. 3034(addition,)X
  6144. 3338(the)X
  6145. 3458(process)X
  6146. 3721(manager)X
  6147. 4020(must)X
  6148. 4197(put)X
  6149. 555 5279(processes)N
  6150. 886(to)X
  6151. 971(sleep)X
  6152. 1159(when)X
  6153. 1356(the)X
  6154. 1477(lock)X
  6155. 1638(or)X