%PDF-1.3 %âãÏÓ 2 0 obj << /Length 9988 >> stream BT /TT2 1 Tf 14 0 0 14 150.625 641.25 Tm 0 g /GS1 gs 0.0001 Tc 0 Tw [(LIBTP:)-487.3(Portable,)-254(Modular)-246.3(Transactions)-256.2(for)-258.8(UNIX)]TJ /TT4 1 Tf 11 0 0 11 457.625 646.75 Tm 0 Tc (1)Tj /TT6 1 Tf 12 0 0 12 272.75 617.25 Tm [(Margo)-246.6(Seltzer)]TJ -0.1146 -1 TD [(Michael)-265.3(Olson)]TJ -3.8646 -1 TD [(University)-261.6(of)-253.4(California,)-259.6(Berkeley)]TJ /TT2 1 Tf 4.9687 -3 TD (Abstract)Tj /TT4 1 Tf 10 0 0 10 94.375 541.875 Tm [(Transactions)-428.1(provide)-407.8(a)-406.2(useful)-406.2(programming)-406.6(paradigm)-411.1(for)-409(maintaining)-398.1(logical)-403.8(consistency,)-409.5(arbitrating)-410(con-)]TJ -2.5 -1.125 TD [(current)-331(access,)-333.8(and)-318.7(managing)-306.6(recovery.)-577.4(In)-304.5(traditional)-302.6(UNIX)-313(systems,)-295.5(the)-303.3(only)-297.2(easy)-310.6(way)-309(of)-304.5(using)-295.5(transactions)-311.1(is)-295.5(to)]TJ T* [(purchase)-458.8(a)-443.7(database)-445.1(system.)-672.2(Such)-425(systems)-420.5(are)-441.8(often)-432.8(slow,)-423.3(costly,)-423.8(and)-431.2(may)-428.3(not)-422.2(provide)-432.8(the)-428.3(exact)-440.6(functionality)]TJ T* [(desired.)-524.8(This)-259.7(paper)-266.8(presents)-260.6(the)-253.3(design,)-251.7(implementation,)-248.6(and)-256.2(performance)-285.3(of)-254.5(LIBTP,)-247.2(a)-256.1(simple,)-246(non-proprietary)-274.6(tran-)]TJ T* [(saction)-342.5(library)-347(using)-320.5(the)-328.3(4.4BSD)-317.2(database)-345.1(access)-346.3(routines)-328.3(\()]TJ /TT2 1 Tf 24.3125 0 TD (db)Tj /TT4 1 Tf 1.1 0 TD [(\(3\)\).)-588.5(On)-327.8(a)-331.2(conventional)-335(transaction)-337.8(processing)-335.6(style)]TJ -25.4125 -1.125 TD [(benchmark,)-357.6(its)-330.2(performance)-372.8(is)-333(approximately)-349.1(85%)-342(that)-338(of)-342(the)-328.3(database)-345.1(access)-346.3(routines)-328.3(without)-319.3(transaction)-337.8(protec-)]TJ T* [(tion,)-319.3(200%)-329.5(that)-325.5(of)-329.5(using)]TJ /TT2 1 Tf 10.2625 0 TD (fsync)Tj /TT4 1 Tf 2.225 0 TD [(\(2\))-334(to)-309.7(commit)-307.3(modi)]TJ /TT7 1 Tf 8.0057 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(cations)-305.7(to)-309.7(disk,)-308(and)-318.6(125%)-317(that)-313(of)-317(a)-318.7(commercial)-330.3(relational)-324.1(data-)]TJ -21.0493 -1.125 TD [(base)-260.6(system.)]TJ /TT2 1 Tf 0 -2.325 TD [(1.)-500(Introduction)]TJ /TT4 1 Tf 2.5 -1.5375 TD [(Transactions)-278.1(are)-279.3(used)-267(in)-259.7(database)-282.6(systems)-258(to)-259.7(enable)-278.1(concurrent)-274.6(users)-257.3(to)-247.2(apply)-253.3(multi-operation)-254.3(updates)-257.8(without)]TJ -2.5 -1.125 TD [(violating)-294.8(the)-303.3(integrity)-299.3(of)-304.5(the)-303.3(database.)-320.1(They)-307.8(provide)-295.3(the)-290.8(properties)-301.5(of)-292(atomicity,)-285.6(consistency,)-297(isolation,)-280.7(and)-293.7(durabil-)]TJ T* [(ity.)-519.3(By)-270.5(atomicity,)-273.1(we)-284(mean)-284.5(that)-275.5(the)-278.3(set)-276.7(of)-279.5(updates)-270.3(comprising)-263(a)-268.7(transaction)-275.3(must)-255.2(be)-268.7(applied)-269.1(as)-267(a)-268.7(single)-261.3(unit;)-504(that)-263(is,)]TJ T* [(they)-265.8(must)-255.2(either)-273.6(all)-263(be)-268.7(applied)-269.1(to)-259.7(the)-265.8(database)-282.6(or)-267(all)-263(be)-268.6(absent.)-520.3(Consistency)-261.3(requires)-279.3(that)-263(a)-268.7(transaction)-275.3(take)-272(the)-265.8(data-)]TJ T* [(base)-348.1(from)-343.7(one)-343.7(logically)-338.5(consistent)-325.5(state)-330(to)-322.2(another.)-589(The)-332.8(property)-337.3(of)-329.5(isolation)-318.2(requires)-341.8(that)-325.5(concurrent)-349.6(transactions)]TJ T* [(yield)-438(results)-439.2(which)-443.7(are)-441.8(indistinguishable)-417(from)-431.2(the)-428.3(results)-426.7(which)-431.2(would)-425(be)-431.2(obtained)-431.6(by)-425(running)-426.7(the)-428.3(transactions)]TJ T* [(sequentially.)-505.5(Finally,)-241.5(durability)-249.3(requires)-266.8(that)-250.5(once)-262.3(transactions)-261.1(have)-262.3(been)-262.3(committed,)-248.1(their)-255(results)-251.7(must)-242.7(be)-256.1(preserved)]TJ T* [(across)-263.5(system)-247.2(failures)-264([TPCB90].)]TJ 2.5 -1.5375 TD [(Although)-284.7(these)-295.3(properties)-301.5(are)-304.3(most)-280.2(frequently)-303.1(discussed)-292(in)-284.7(the)-290.8(context)-294.1(of)-292(databases,)-306(they)-278.3(are)-291.8(useful)-281.2(program-)]TJ -2.5 -1.125 TD [(ming)-381.8(paradigms)-384.5(for)-384(more)-382.8(general)-395.1(purpose)-384(applications.)-630.5(There)-393.5(are)-391.8(several)-393.5(different)-395.1(situations)-366.5(where)-394.6(transactions)]TJ T* [(can)-262.3(be)-256.2(used)-254.5(to)-247.2(replace)-276.3(current)-268.5(ad-hoc)-266.8(mechanisms.)]TJ 2.5 -1.5375 TD [(One)-271.5(situation)-255.7(is)-258(when)-271.5(multiple)]TJ /TT7 1 Tf 12.5875 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(les)-258(or)-267(parts)-268.7(of)]TJ /TT7 1 Tf 5.7813 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(les)-245.5(need)-262.3(to)-247.2(be)-256.2(updated)-259.5(in)-247.2(an)-256.2(atomic)-253.8(fashion.)-506.2(For)-248.3(example,)-262.8(the)]TJ -21.9811 -1.125 TD [(traditional)-290.1(UNIX)]TJ /TT7 1 Tf 7.2 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-284.7(system)-284.7(uses)-277.8(ordering)-287.3(constraints)-280(to)-272.2(achieve)-296.8(recoverability)-297.3(in)-272.2(the)-278.3(face)-298(of)-279.5(crashes.)-544.6(When)-287.3(a)-281.2(new)]TJ /TT7 1 Tf -7.7562 -1.125 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-259.7(is)-258(created,)-288.8(its)-255.2(inode)-265.8(is)-258(written)-255(to)-247.2(disk)-245.5(before)-271.3(the)-253.3(new)]TJ /TT7 1 Tf 22.1938 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-247.2(is)-245.5(added)-262.3(to)-247.2(the)-253.3(directory)-265.6(structure.)-514(This)-247.2(guarantees)-274.6(that,)]TJ -23.3062 -1.125 TD [(if)-289.2(the)-290.8(system)-284.7(crashes)-307.1(between)-306(the)-290.8(two)-287.5(I/O’s,)-294.8(the)-290.8(directory)-303.1(does)]TJ 25.8125 0 TD [(not)-272.2(contain)-281.6(a)]TJ 5.5 0 TD 0.0039 Tc [(reference)-270(to)-268.3(an)]TJ 6.3125 0 TD 0 Tc [(invalid)-272.7(inode.)-528.3(In)-279.5(actu-)]TJ -37.625 -1.125 TD [(ality,)-297.7(the)-303.3(desired)-312.3(effect)-312.1(is)-283(that)-288(these)-295.3(two)-287.5(updates)-295.3(have)-299.8(the)-290.8(transactional)-303.6(property)-299.8(of)-292(atomicity)-285.6(\(either)-303.1(both)-284.7(writes)-293.7(are)]TJ T* [(visible)-271(or)-279.5(neither)-286.1(is\).)-525(Rather)-272(than)-265.8(building)-254(special)-273.6(purpose)-271.5(recovery)-289.9(mechanisms)-269.1(into)-256.8(the)]TJ /TT7 1 Tf 36.1875 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-259.7(system)-259.7(or)-267(related)-279.8(tools)]TJ -36.7437 -1.125 TD (\()Tj /TT6 1 Tf 0.3375 0 TD (e.g.)Tj /TT2 1 Tf 1.8 0 TD (fsck)Tj /TT4 1 Tf 1.725 0 TD [(\(8\)\),)-363.5(one)-356.2(could)-353.3(use)-354.5(general)-370.1(purpose)-346.5(transaction)-350.3(recovery)-364.9(protocols)-340.8(after)-356(system)-334.7(failure.)-603.1(Any)-340.3(application)]TJ -3.8625 -1.125 TD [(that)-375.5(needs)-385.6(to)-372.2(keep)-387.3(multiple,)-367(related)]TJ /TT7 1 Tf 15.025 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(les)-370.5(\(or)-384(directories\))-396.8(consistent)-375.5(should)-358(do)-362.5(so)-360.8(using)-358(transactions.)-623.6(Source)-373.1(code)]TJ -15.5812 -1.125 TD [(control)-292.5(systems,)-283(such)-292(as)-292(RCS)-272.4(and)-293.6(SCCS,)-266.2(should)-283(use)-292(transaction)-300.3(semantics)-294.1(to)-284.7(allow)-290.8(the)-290.8(‘‘checking)-312.1(in’’)-293.7(of)-279.5(groups)-277.8(of)]TJ T* (related)Tj /TT7 1 Tf 3.075 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD 0.0005 Tc [(les.)-582.5(In)-341.5(this)-329.7(way,)-346(if)-326.2(the)-327.8(‘‘check-in’’)-323.5(fails,)-327.8(the)-327.8(transaction)-337.3(may)-327.8(be)-330.7(aborted,)-338.5(backing)-334(out)-321.7(the)-327.8(partial)-332.8(‘‘check-)]TJ -3.6312 -1.125 TD 0 Tc [(in’’)-256.2(leaving)-256.6(the)-253.3(source)-265.1(repository)-257.8(in)-247.2(a)-256.2(consistent)-250.5(state.)]TJ 2.5 -1.5375 TD [(A)-365.3(second)-373.1(situation)-355.7(where)-382.1(transactions)-373.6(can)-374.8(be)-368.7(used)-367(to)-359.7(replace)-388.8(current)-381(ad-hoc)-379.3(mechanisms)-369.1(is)-345.5(in)-347.2(applications)]TJ -2.5 -1.125 TD [(where)-319.6(concurrent)-324.6(updates)-307.8(to)-297.2(a)-306.2(shared)]TJ /TT7 1 Tf 15.475 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-297.2(are)-316.8(desired,)-312.3(but)-297.2(there)-314(is)-295.5(logical)-303.8(consistency)-297(of)-292(the)-290.8(data)-297(which)-293.7(needs)-298.1(to)-284.7(be)]TJ -16.0312 -1.125 TD [(preserved.)-525.8(For)-248.3(example,)-262.8(when)-259(the)-253.3(password)]TJ /TT7 1 Tf 18.1375 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-247.2(is)-245.5(updated,)]TJ /TT7 1 Tf 5.5563 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-247.2(locking)-250.5(is)-245.5(used)-254.5(to)-247.2(disallow)-248.8(concurrent)-274.6(access.)-521.3(Tran-)]TJ -24.8062 -1.125 TD [(saction)-280(semantics)-281.6(on)-275(the)-278.3(password)]TJ /TT7 1 Tf 14.175 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(les)-270.5(would)-275(allow)-278.3(concurrent)-299.6(updates,)-282.8(while)-278.3(preserving)-279.3(the)-265.8(logical)-266.3(consistency)-272(of)]TJ -14.7311 -1.125 TD [(the)-353.3(password)-360.2(database.)-620.1(Similarly,)-340.3(UNIX)-350.5(utilities)-325(which)-343.6(rewrite)]TJ /TT7 1 Tf 26.4875 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(les)-333(face)-360.4(a)-343.7(potential)-338.5(race)-360.5(condition)-335.2(between)-356(their)]TJ -27.0436 -1.125 TD [(rewriting)-284.5(a)]TJ /TT7 1 Tf 4.675 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-272.2(and)-281.2(another)-276.5(process)-276(reading)-276.5(the)]TJ /TT7 1 Tf 14.0313 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le.)-509.7(For)-260.8(example,)-275.3(the)-265.8(compiler)-270.8(\(more)-274.8(precisely,)-278.1(the)-265.8(assembler\))-281(may)]TJ /T1 1 Tf 8 0 0 8 69.375 99.375 Tm ()Tj /TT4 1 Tf 5 0 0 5 90.875 89.625 Tm (1)Tj 8 0 0 8 95.375 86.5 Tm [(To)-248.5(appear)-226.1(in)-253.4(the)]TJ /TT6 1 Tf 6.75 0 TD [(Proceedings)-235.8(of)-253.4(the)-247.1(1992)-250(Winter)-247.1(Usenix)]TJ /TT4 1 Tf 15.7188 0 TD [(,)-250(San)-250(Francisco,)-237.3(CA,)-251.5(January)-233.9(1992.)]TJ ET endstream endobj 3 0 obj << /ProcSet [/PDF /Text ] /Font << /TT2 4 0 R /TT4 5 0 R /TT6 6 0 R /TT7 7 0 R /T1 8 0 R >> /ExtGState << /GS1 9 0 R >> >> endobj 12 0 obj << /Length 11505 >> stream BT /TT4 1 Tf 10 0 0 10 69.375 713.25 Tm 0 g /GS1 gs 0 Tc 0 Tw [(have)-387.3(to)-372.2(rewrite)-393.5(a)]TJ /TT7 1 Tf 7.4625 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-359.7(to)-359.7(which)-368.7(it)-356.8(has)-367(write)-370.3(permission)-361.3(in)-359.7(a)-368.7(directory)-378.1(to)-359.7(which)-368.7(it)-356.8(does)-367(not)-359.7(have)-374.8(write)-370.3(permission.)]TJ -8.0187 -1.125 TD [(While)-356.6(the)-340.8(‘‘.o’’)]TJ /TT7 1 Tf 6.8 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-334.7(is)-333(being)-340.8(written,)-342.5(another)-351.5(utility)-323.3(such)-342(as)]TJ /TT2 1 Tf 17.4563 0 TD (nm)Tj /TT4 1 Tf 1.3875 0 TD [(\(1\))-346.5(or)]TJ /TT2 1 Tf 2.6875 0 TD (ar)Tj /TT4 1 Tf 0.95 0 TD [(\(1\))-346.5(may)-340.8(read)-354.3(the)]TJ /TT7 1 Tf 7.2125 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-334.7(and)-343.7(produce)-354.3(invalid)]TJ -37.6062 -1.125 TD [(results)-326.7(since)-332.8(the)]TJ /TT7 1 Tf 6.875 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-322.2(has)-329.5(not)-322.2(been)-337.3(completely)-332.1(written.)-580(Currently,)-330(some)-326.7(utilities)-312.5(use)-329.5(special)-336.1(purpose)-321.5(code)-324.8(to)-309.7(handle)]TJ -7.4312 -1.125 TD [(such)-254.5(cases)-265.1(while)-253.3(others)-256.2(ignore)-257.8(the)-253.3(problem)-255(and)-256.2(force)-271.3(users)-257.3(to)-247.2(live)-250.5(with)-247.2(the)-253.3(consequences.)]TJ 2.5 -1.5375 TD [(In)-292(this)-280.2(paper,)-304.3(we)-296.5(present)-299.8(a)-281.2(simple)-271(library)-284.5(which)-281.2(provides)-281.2(transaction)-287.8(semantics)-281.6(\(atomicity,)-277.6(consistency,)-284.5(isola-)]TJ -2.5 -1.125 TD [(tion,)-256.8(and)-268.7(durability\).)-266.3(The)-270.3(4.4BSD)-254.7(database)-282.6(access)-271.3(methods)-248.8(have)-262.3(been)-262.3(modi)]TJ /TT7 1 Tf 30.3307 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(ed)-244.3(to)-247.2(use)-254.5(this)-242.7(library,)-259.5(optionally)-244.8(provid-)]TJ -30.8868 -1.125 TD [(ing)-309.7(shared)-327.6(buffer)-332.1(management)-328.6(between)-331(applications,)-305.5(locking,)-300.5(and)-306.1(transaction)-312.8(semantics.)-556.6(Any)-302.8(UNIX)-313(program)-312.3(may)]TJ T* [(transaction)-300.3(protect)-298.6(its)-280.2(data)-284.5(by)-275(requesting)-284.5(transaction)-287.8(protection)-283.3(with)-272.2(the)]TJ /TT2 1 Tf 29.225 0 TD (db)Tj /TT4 1 Tf 1.1 0 TD [(\(3\))-284(library)-284.5(or)-279.5(by)-275(adding)-278.3(appropriate)-296.8(calls)]TJ -30.325 -1.125 TD [(to)-359.7(the)-365.8(transaction)-375.3(manager,)-382.6(buffer)-382.1(manager,)-382.6(lock)-365.8(manager,)-382.6(and)-368.7(log)-359.7(manager.)-632.6(The)-370.3(library)-359.5(routines)-353.3(may)-353.3(be)-356.2(linked)]TJ T* [(into)-356.8(the)-353.3(host)-345.5(application)-357.1(and)-356.2(called)-362.8(by)-350(subroutine)-353.3(interface,)-377.9(or)-354.5(they)-353.3(may)-353.3(reside)-362.3(in)-347.2(a)-356.1(separate)-374.6(server)-369.6(process.)-613.5(The)]TJ T* [(server)-269.6(architecture)-281.3(provides)-256.2(for)-259(network)-260.6(access)-271.3(and)-256.1(better)-261.1(protection)-258.3(mechanisms.)]TJ /TT2 1 Tf 0 -2.325 TD [(2.)-500(Related)-260.6(Work)]TJ /TT4 1 Tf 2.5 -1.5375 TD [(There)-731(has)-717(been)-724.8(much)-715.8(discussion)-708(in)-709.7(recent)-732.6(years)-715.1(about)-703.3(new)-709(transaction)-712.8(models)-698.8(and)-706.2(architectures)]TJ -2.5 -1.125 TD 0.0009 Tc [([SPEC88][NODI90][CHEN91][MOHA91].)-545.7(Much)-303.6(of)-291.1(this)-279.3(work)-293.9(focuses)-300.1(on)]TJ 30.6 0 TD 0 Tc [(new)-296.5(ways)-294.8(to)-284.7(model)-288(transactions)-298.6(and)-293.7(the)]TJ -30.6 -1.125 TD [(interactions)-310(between)-318.5(them,)-300.5(while)-303.3(the)-290.8(work)-294.8(presented)-306(here)-304.3(focuses)-301(on)-287.5(the)-290.8(implementation)-286.1(and)-293.7(performance)-322.8(of)-292(tradi-)]TJ T* [(tional)-247.7(transaction)-262.8(techniques)-261.1(\(write-ahead)-285.3(logging)-244.3(and)-256.2(two-phase)-265.1(locking\))-255(on)-250(a)-256.2(standard)-262.3(operating)-261.1(system)-247.2(\(UNIX\).)]TJ 2.5 -1.5375 TD [(Such)-400(traditional)-402.6(operating)-411.1(systems)-395.5(are)-416.8(often)-407.8(criticized)-417.8(for)-409(their)-405(inability)-392(to)-384.7(perform)-404.3(transaction)-400.3(processing)]TJ -2.5 -1.125 TD [(adequately.)-618.9([STON81])-360.2(cites)-355(three)-364(main)-350.5(areas)-371.3(of)-354.5(inadequate)-368.9(support:)-347.2(buffer)-369.6(management,)-366.1(the)]TJ /TT7 1 Tf 38.7875 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-347.2(system,)-347.2(and)-343.7(the)]TJ -39.3437 -1.125 TD [(process)-351(structure.)-851.5(These)-349.8(arguments)-347(are)-354.3(summarized)-350.3(in)-334.7(table)-331.6(one.)-581.2(Fortunately,)-327.1(much)-328.3(has)-329.5(changed)-343.5(since)-332.8(1981.)-575(In)]TJ T* [(the)-378.3(area)-398(of)-379.5(buffer)-394.6(management,)-391.1(most)-367.7(UNIX)-388(systems)-370.5(provide)-382.8(the)-378.3(ability)-369.8(to)-372.2(memory)-380(map)]TJ /TT7 1 Tf 37.125 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(les,)-370.5(thus)-358(obviating)-360.2(the)]TJ -37.6812 -1.125 TD [(need)-349.8(for)-346.5(a)-343.7(copy)-343.7(between)-356(kernel)-351.5(and)-331.2(user)-334(space.)-591.8(If)-334(a)-331.2(database)-345.1(system)-322.2(is)-320.5(going)-322.2(to)-322.2(use)-329.5(the)]TJ /TT7 1 Tf 36.7625 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-322.2(system)-322.2(buffer)-344.6(cache,)]TJ -37.3186 -1.125 TD [(then)-328.3(a)-331.2(system)-322.2(call)-331.6(is)-320.5(required.)-593.5(However,)-335(if)-314.2(buffering)-329.3(is)-308(provided)-320.3(at)-315.8(user)-321.5(level)-319.1(using)-308(shared)-327.6(memory,)-317.5(as)-317(in)-309.7(LIBTP,)]TJ T* [(buffer)-319.6(management)-316.1(is)-295.5(only)-284.7(as)-292(slow)-285.8(as)-292(access)-308.8(to)-284.7(shared)-302.6(memory)-292.5(and)-293.6(any)-293.7(replacement)-314.3(algorithm)-286.8(may)-290.8(be)-293.7(used.)-292(Since)]TJ T* [(multiple)-342(processes)-368(can)-362.3(access)-371.3(the)-353.3(shared)-365.1(data,)-359.5(prefetching)-371.8(may)-353.3(be)-356.2(accomplished)-364.5(by)-350(separate)-374.6(processes)-355.5(or)-342(threads)]TJ T* [(whose)-282.3(sole)-264.2(purpose)-271.5(is)-258(to)-259.7(prefetch)-287.1(pages)-273.1(and)-268.7(wait)-265.8(on)-262.5(them.)-513(There)-281(is)-258(still)-249.5(no)-262.5(way)-271.5(to)-259.7(enforce)-289.9(write)-270.3(ordering)-274.8(other)-270.3(than)]TJ T* [(keeping)-259.5(pages)-260.6(in)-247.2(user)-259(memory)-255(and)-256.2(using)-245.5(the)]TJ /TT2 1 Tf 18.0875 0 TD (fsync)Tj /TT4 1 Tf 2.225 0 TD [(\(3\))-259(system)-247.2(call)-256.6(to)-247.2(perform)-266.8(synchronous)-257.3(writes.)]TJ -17.8125 -1.5375 TD [(In)-292(the)-290.8(area)-310.4(of)]TJ /TT7 1 Tf 5.7375 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-284.7(systems,)-283(the)-290.8(fast)]TJ /TT7 1 Tf 7.9563 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-284.7(system)-284.7(\(FFS\))-278([MCKU84])-296(allows)-289.2(allocation)-294.6(in)-284.7(units)-267.7(up)-275(to)-272.2(64KBytes)-275(as)]TJ -17.3062 -1.125 TD [(opposed)-304.5(to)-297.2(the)-303.3(4KByte)-301.7(and)-293.7(8KByte)]TJ /TT7 1 Tf 14.7875 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(gures)-290.3(quoted)-290.8(in)-284.7([STON81].)-547.7(The)-295.3(measurements)-304.8(in)-284.7(this)-280.2(paper)-304.3(were)-307.1(taken)-297(from)]TJ -15.3437 -1.125 TD [(an)-306.2(8KByte)-301.7(FFS,)-281.5(but)-297.2(as)-292(LIBTP)-284.7(runs)-290.3(exclusively)-295.8(in)-284.7(user)-296.5(space,)-304.3(there)-301.5(is)-283(nothing)-281.8(to)-284.7(prevent)-301.5(it)-281.8(from)-293.7(being)-290.8(run)-292(on)-287.5(other)]TJ T* [(UNIX)-263(compatible)]TJ /TT7 1 Tf 7.4625 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-247.2(systems)-245.5(\(e.g.)-260.6(log-structured)-265.6([ROSE91],)-252.8(extent-based,)-271.8(or)-254.5(multi-block)-246.5([SELT91]\).)]TJ -5.5187 -1.5375 TD [(Finally,)-341.5(with)-347.2(regard)-371.3(to)-347.2(the)-340.8(process)-351(structure,)-351.5(neither)-348.6(context)-344.1(switch)-339.2(time)-335.2(nor)-342(scheduling)-342.5(around)-348.1(semaphores)]TJ -2.5 -1.125 TD [(seems)-431.2(to)-422.2(affect)-449.6(the)-428.3(system)-422.2(performance.)-710.3(However,)-447.5(the)-428.3(implementation)-411.1(of)-417(semaphores)-429.3(can)-424.8(impact)-416.3(performance)]TJ T* [(tremendously.)-506.6(This)-247.2(is)-245.5(discussed)-254.5(in)-247.2(more)-257.8(detail)-253.8(in)-247.2(section)-255(4.3.)]TJ 2.5 -1.5375 TD [(The)-357.8(Tuxedo)-357.8(system)-347.2(from)-356.2(AT&T)-353.3(is)-333(a)-343.7(transaction)-350.3(manager)-357.6(which)-343.7(coordinates)-353.1(distributed)-335.2(transaction)-350.3(commit)]TJ -2.5 -1.125 TD [(from)-343.7(a)-343.7(variety)-348.6(of)-342(different)-357.6(local)-344.1(transaction)-350.3(managers.)-606(At)-337.5(this)-317.7(time,)-322.7(LIBTP)-322.2(does)-329.5(not)-322.2(have)-337.3(its)-317.7(own)-327.8(mechanism)-333.3(for)]TJ T* [(distributed)-560.2(commit)-557.3(processing,)-573.1(but)-559.7(could)-565.8(be)-568.7(used)-567(as)-567(a)-568.7(local)-569.1(transaction)-575.3(agent)-559.5(by)-550(systems)-545.5(such)-554.5(as)-554.5(Tuxedo)]TJ T* ([ANDR89].)Tj /T1 1 Tf 3.85 -2.8625 TD ()Tj 0.0875 0 TD ()Tj /TT4 1 Tf 0.4125 -1.125 TD [(Buffer)-265.1(Management)]TJ /T1 1 Tf 9.6125 0 TD ()Tj /TT4 1 Tf 0.6 0 TD [(Data)-262.3(must)-242.7(be)-256.2(copied)-259.5(between)-268.5(kernel)-264(space)-266.8(and)-256.2(user)-259(space.)]TJ /T1 1 Tf -0.6 -1.125 TD ()Tj /TT4 1 Tf 0.6 0 TD [(Buffer)-265.1(pool)-247.2(access)-271.3(is)-245.5(too)-247.2(slow.)]TJ /T1 1 Tf -0.6 -1.125 TD ()Tj /TT4 1 Tf 0.6 0 TD [(There)-268.5(is)-245.5(no)-250(way)-259(to)-247.2(request)-262.3(prefetch.)]TJ /T1 1 Tf -0.6 -1.125 TD ()Tj /TT4 1 Tf 0.6 0 TD [(Replacement)-267.8(is)-245.5(usually)-248.8(LRU)-250(which)-256.2(may)-253.3(be)-256.2(suboptimal)-243.2(for)-259(databases.)]TJ /T1 1 Tf -0.6 -1.125 TD ()Tj /TT4 1 Tf 0.6 0 TD [(There)-268.5(is)-245.5(no)-250(way)-259(to)-247.2(guarantee)-276.3(write)-257.8(ordering.)]TJ /T1 1 Tf -10.7125 -0.125 TD ()Tj 0.0875 0 TD ()Tj /TT4 1 Tf 0.4125 -1.125 TD [(File)-244.3(System)]TJ /T1 1 Tf 9.6125 0 TD ()Tj /TT4 1 Tf 0.6 0 TD [(Allocation)-253.8(is)-245.5(done)-256.2(in)-247.2(small)-246(blocks)-251.7(\(usually)-253.3(4K)-252.8(or)-254.5(8K\).)]TJ /T1 1 Tf -0.6 -1.125 TD ()Tj /TT4 1 Tf 0.6 0 TD [(Logical)-258.3(organization)-264.5(of)]TJ /TT7 1 Tf 9.6625 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(les)-245.5(is)-245.5(redundantly)-261.1(expressed.)]TJ /T1 1 Tf -20.9312 -0.125 TD ()Tj 0.0875 0 TD ()Tj /TT4 1 Tf 0.4125 -1.125 TD [(Process)-257.3(Structure)]TJ /T1 1 Tf 9.6125 0 TD ()Tj /TT4 1 Tf 0.6 0 TD [(Context)-246(switching)-248.8(and)-256.2(message)-262.3(passing)-250(are)-266.8(too)-247.2(slow.)]TJ /T1 1 Tf -0.6 -1.125 TD ()Tj /TT4 1 Tf 0.6 0 TD [(A)-252.8(process)-263.5(may)-253.3(be)-256.2(descheduled)-270.1(while)-253.3(holding)-244.3(a)-256.2(semaphore.)]TJ /T1 1 Tf -10.7125 -0.125 TD ()Tj 0.0875 0 TD ()Tj -0.0875 0 TD ()Tj 0 0.5 TD ()Tj 0 1 TD ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj 39.0875 -9.5 TD ()Tj 0 0.5 TD ()Tj 0 1 TD ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj /TT2 1 Tf -35.425 -12.1625 TD [(Table)-242.7(One:)-251.7(Shortcomings)-248.3(of)-254.5(UNIX)-256.8(transaction)-254.5(support)-240.5(cited)-257.8(in)-241([STON81].)]TJ ET endstream endobj 13 0 obj << /ProcSet [/PDF /Text ] /Font << /TT2 4 0 R /TT4 5 0 R /TT7 7 0 R /T1 8 0 R >> /ExtGState << /GS1 9 0 R >> >> endobj 15 0 obj << /Length 12803 >> stream BT /TT4 1 Tf 10 0 0 10 94.375 713.25 Tm 0 g /GS1 gs 0 Tc 0 Tw [(The)-270.3(transaction)-275.3(architecture)-293.8(presented)-281(in)-259.7([YOUN91])-282.8(is)-258(very)-273.1(similar)-260.2(to)-259.7(that)-263(implemented)-266.8(in)-259.7(the)-265.8(LIBTP.)-509.7(While)]TJ -2.5 -1.125 TD [([YOUN91])-345.3(presents)-335.6(a)-331.2(model)-325.5(for)-334(providing)-323.8(transaction)-337.8(services,)-329.3(this)-305.2(paper)-329.3(focuses)-326(on)-312.5(the)-315.8(implementation)-311.1(and)-318.6(per-)]TJ T* [(formance)-299.6(of)-279.5(a)-281.2(particular)-293.9(system.)-522.2(In)-279.5(addition,)-260.2(we)-271.5(provide)-270.3(detailed)-272.5(comparisons)-270.3(with)-259.7(alternative)-280.3(solutions:)-247.9(traditional)]TJ T* [(UNIX)-263(services)-266.8(and)-256.2(commercial)-267.8(database)-270.1(management)-266.1(systems.)]TJ /TT2 1 Tf 0 -2.325 TD [(3.)-500(Architecture)]TJ /TT4 1 Tf 2.5 -1.5375 TD [(The)-332.8(library)-334.5(is)-308(designed)-320.3(to)-309.7(provide)-320.3(well)-315.8(de)]TJ /TT7 1 Tf 17.1813 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(ned)-318.7(interfaces)-338.8(to)-309.7(the)-315.8(services)-329.3(required)-331(for)-321.5(transaction)-325.3(processing.)]TJ -20.2375 -1.125 TD [(These)-387.3(services)-391.8(are)-391.8(recovery,)-402.4(concurrency)-408.6(control,)-380(and)-381.2(the)-378.3(management)-391.1(of)-379.5(shared)-390.1(data.)-634.5(First)-366(we)-384(will)-369.3(discuss)-360.8(the)]TJ T* [(design)-389.2(tradeoffs)-408.8(in)-384.7(the)-390.8(selection)-395.8(of)-392(recovery,)-414.9(concurrency)-421.1(control,)-380(and)-381.2(buffer)-394.6(management)-391.1(implementations,)-372(and)]TJ T* [(then)-253.3(we)-259(will)-244.3(present)-262.3(the)-253.3(overall)-261.1(library)-259.5(architecture)-281.2(and)-256.2(module)-250.5(descriptions.)]TJ /TT2 1 Tf 0 -2.325 TD [(3.1.)-500(Design)-248.3(Tradeoffs)]TJ T* [(3.1.1.)-500(Crash)-251.2(Recovery)]TJ /TT4 1 Tf 2.5 -1.5375 TD [(The)-370.3(recovery)-389.9(protocol)-367.5(is)-358(responsible)-370.3(for)-371.5(providing)-361.3(the)-365.8(transaction)-375.3(semantics)-369.1(discussed)-367(earlier.)-634.3(There)-381(are)-366.8(a)]TJ -2.5 -1.125 TD [(wide)-356.2(range)-366.8(of)-354.5(recovery)-377.4(protocols)-353.3(available)-366.1([HAER83],)-361.8(but)-347.2(we)-359(can)-349.8(crudely)-351.5(divide)-338(them)-338(into)-331.8(two)-337.5(main)-338(categories.)]TJ T* (The)Tj /TT7 1 Tf 1.8875 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(rst)-318.8(category)-345.1(records)-344.6(all)-325.5(modi)]TJ /TT7 1 Tf 11.7745 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(cations)-318.2(to)-322.2(the)-328.3(database)-345.1(in)-322.2(a)-318.6(separate)]TJ /TT7 1 Tf 15.0632 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le,)-309.7(and)-318.6(uses)-315.3(this)]TJ /TT7 1 Tf 6.8313 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-309.7(\(log\))-318.7(to)-309.7(back)-324.8(out)-309.7(or)]TJ -37.7812 -1.125 TD [(reapply)-376.5(these)-370.3(modi)]TJ /TT7 1 Tf 7.8557 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(cations)-355.7(if)-364.2(a)-368.7(transaction)-375.3(aborts)-368.7(or)-367(the)-365.8(system)-359.7(crashes.)-632.1(We)-374.8(call)-369.1(this)-355.2(set)-364.2(the)]TJ /TT2 1 Tf 30.7382 0 TD [(logging)-338.2(protocols)]TJ /TT4 1 Tf 7.4 0 TD (.)Tj -46.55 -1.125 TD [(The)-295.3(second)-298.1(category)-307.6(avoids)-289.2(the)-290.8(use)-292(of)-292(a)-293.7(log)-284.7(by)-287.5(carefully)-309.3(controlling)-286.8(when)-296.5(data)-297(are)-304.3(written)-292.5(to)-284.7(disk.)-533(We)-299.8(call)-294.1(this)-267.7(set)]TJ T* (the)Tj /TT2 1 Tf 1.475 0 TD [(non-logging)-230.4(protocols)]TJ /TT4 1 Tf 9.2375 0 TD (.)Tj -8.2125 -1.5375 TD [(Non-logging)-264.2(protocols)-265.8(hold)-247.2(dirty)-248.8(buffers)-268(in)-247.2(main)-250.5(memory)-255(or)-254.5(temporary)]TJ /TT7 1 Tf 28.95 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(les)-245.5(until)-241.5(commit)-244.8(and)-256.2(then)-253.3(force)-271.3(these)]TJ -32.0061 -1.125 TD [(pages)-398.1(to)-384.7(disk)-383(at)-390.8(transaction)-400.3(commit.)-632.3(While)-394.1(we)-396.5(can)-399.8(use)-392(temporary)]TJ /TT7 1 Tf 28.15 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(les)-383(to)-384.7(hold)-384.7(dirty)-373.8(pages)-385.6(that)-375.5(may)-378.3(need)-387.3(to)-372.2(be)]TJ -28.7062 -1.125 TD [(evicted)-300.3(from)-281.2(memory)-280(during)-276.7(a)-281.2(long-running)-278.3(transaction,)-287.8(the)-278.3(only)-272.2(user-level)-295.1(mechanism)-283.3(to)-272.2(force)-296.3(pages)-285.6(to)-272.2(disk)-270.5(is)-270.5(the)]TJ /TT2 1 Tf T* (fsync)Tj /TT4 1 Tf 2.225 0 TD [(\(2\))-296.5(system)-284.7(call.)-544.1(Unfortunately,)]TJ /TT2 1 Tf 12.925 0 TD (fsync)Tj /TT4 1 Tf 2.225 0 TD [(\(2\))-296.5(is)-283(an)-293.7(expensive)-301.5(system)-284.7(call)-294.1(in)-284.7(that)-288(it)-281.8(forces)-307.1(all)-288(pages)-298.1(of)-292(a)]TJ /TT7 1 Tf 24.9125 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-272.2(to)-272.2(disk,)]TJ -42.8437 -1.125 TD [(and)-256.2(transactions)-261.1(that)-250.5(manage)-265.6(more)-257.8(than)-253.3(one)]TJ /TT7 1 Tf 17.85 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-247.2(must)-242.7(issue)-250(one)-256.1(call)-256.6(per)]TJ /TT7 1 Tf 10.3438 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD (le.)Tj -26.8062 -1.5375 TD [(In)-392(addition,)]TJ /TT2 1 Tf 5.1375 0 TD (fsync)Tj /TT4 1 Tf 2.225 0 TD [(\(2\))-396.5(provides)-393.7(no)-387.5(way)-384(to)-372.2(control)-380(the)-378.3(order)-390.1(in)-372.2(which)-381.2(dirty)-373.8(pages)-385.6(are)-391.8(written)-380(to)-372.2(disk.)-620.5(Since)]TJ -9.8625 -1.125 TD [(non-logging)-373.8(protocols)-378.3(must)-367.7(sometimes)-372.7(order)-390.1(writes)-381.1(carefully)-396.8([SULL92],)-384(they)-378.3(are)-391.8(dif)]TJ /TT7 1 Tf 35.2233 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(cult)-371(to)-372.2(implement)-360.6(on)-362.5(Unix)]TJ -35.7795 -1.125 TD [(systems.)-495.5(As)-251.2(a)-256.2(result,)-253.3(we)-259(have)-262.3(chosen)-260.6(to)-247.2(implement)-248.1(a)-256.2(logging)-244.3(protocol.)]TJ 2.5 -1.5375 TD [(Logging)-298.8(protocols)-303.3(may)-303.3(be)-306.2(categorized)-329.6(based)-310.6(on)-300(how)-302.8(information)-303.8(is)-295.5(logged)-303.3(\(physically)-294.1(or)-292(logically\))-293(and)-293.7(how)]TJ -2.5 -1.125 TD [(much)-428.3(is)-420.5(logged)-428.3(\(before)-450.8(images,)-430(after)-443.5(images)-430(or)-429.5(both\).)-676.7(In)]TJ /TT2 1 Tf 24.8375 0 TD [(physical)-411.5(logging)]TJ /TT4 1 Tf 7.0125 0 TD [(,)-425(images)-417.5(of)-417(complete)-422.5(physical)-417.5(units)]TJ -31.85 -1.125 TD [(\(pages)-277.6(or)-267(buffers\))-285(are)-279.3(recorded,)-289.9(while)-265.8(in)]TJ /TT2 1 Tf 16.5 0 TD [(logical)-260.2(logging)]TJ /TT4 1 Tf 6.4 0 TD [(a)-268.7(description)-256.6(of)-254.5(the)-253.3(operation)-261.1(is)-245.5(recorded.)-527.4(Therefore,)-283.6(while)]TJ -22.9 -1.125 TD [(we)-334(may)-328.3(record)-346.3(entire)-336.1(pages)-335.6(in)-322.2(a)-331.2(physical)-330(log,)-322.2(we)-334(need)-337.3(only)-322.2(record)-333.8(the)-315.8(records)-332.1(being)-315.8(modi)]TJ /TT7 1 Tf 37.1807 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(ed)-306.8(in)-309.7(a)-318.7(logical)-316.3(log.)-559.7(In)]TJ -37.7368 -1.125 TD [(fact,)-289(physical)-267.5(logging)-256.8(can)-274.8(be)-268.7(thought)-256.8(of)-267(as)-267(a)-268.7(special)-273.6(case)]TJ 23.1 0 TD [(of)-267(logical)-266.3(logging,)-256.8(since)]TJ 9.975 0 TD 0.0021 Tc [(the)-263.7(‘‘records’’)-258.9(that)-260.9(we)]TJ 9.2625 0 TD 0 Tc [(log)-259.7(in)-259.7(logi-)]TJ -42.3375 -1.125 TD [(cal)-309.5(logging)-294.3(might)-291.5(be)-306.2(physical)-305(pages.)-560.6(Since)-303.3(logical)-303.8(logging)-294.3(is)-295.5(both)-284.7(more)-295.3(space-ef)]TJ /TT7 1 Tf 33.0306 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(cient)-319.9(and)-293.7(more)-295.3(general,)-307.6(we)-296.5(have)]TJ -33.5867 -1.125 TD [(chosen)-260.6(it)-244.3(for)-259(our)-254.5(logging)-244.3(protocol.)]TJ 2.5 -1.5375 TD (In)Tj /TT2 1 Tf 1.1 0 TD [(before-image)-291.6(logging)]TJ /TT4 1 Tf 9 0 TD [(,)-262.5(w)0(e)-271.5(log)-259.7(a)-268.7(copy)-268.7(of)-267(the)-265.8(data)-272(before)-283.8(the)-265.8(update,)-272(while)-265.8(in)]TJ /TT2 1 Tf 21.975 0 TD [(after-image)-283.6(logging)]TJ /TT4 1 Tf 8.325 0 TD [(,)-250(w)0(e)-259(log)-247.2(a)]TJ -42.9 -1.125 TD [(copy)-368.7(of)-367(the)-365.8(data)-372(after)-381(the)-353.3(update.)-609.5(If)-359(we)-359(log)-347.2(only)-347.2(before-images,)-380.8(then)-353.3(there)-364(is)-345.5(suf)]TJ /TT7 1 Tf 33.7722 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(cient)-353.3(information)-353.8(in)-347.2(the)-353.3(log)-347.2(to)]TJ -34.3283 -1.125 TD [(allow)-353.3(us)-348.3(to)]TJ /TT2 1 Tf 4.9375 0 TD (undo)Tj /TT4 1 Tf 2.5 0 TD [(the)-353.3(transaction)-362.8(\(go)-354.5(back)-362.3(to)-347.2(the)-353.3(state)-342.5(represented)-366.6(by)-337.5(the)-340.8(before-image\).)-624.4(However,)-610(if)-339.2(the)-340.8(system)]TJ -7.4375 -1.125 TD [(crashes)-294.6(and)-281.2(a)-281.2(committed)-273.1(transaction’s)-290.6(changes)-291.8(have)-287.3(not)-272.2(reached)-304.1(the)-278.3(disk,)-270.5(we)-271.5(have)-274.8(no)-262.5(means)-270.3(to)]TJ /TT2 1 Tf 38.7 0 TD (redo)Tj /TT4 1 Tf 2.2125 0 TD [(the)-265.8(transaction)]TJ -40.9125 -1.125 TD [(\(reapply)-343.5(the)-328.3(updates\).)-587.3(Therefore,)-358.6(logging)-319.3(only)-322.2(before-images)-355.8(necessitates)-342.3(forcing)-337.3(dirty)-323.8(pages)-335.6(at)-328.3(commit)-319.8(time.)-572.7(As)]TJ T* [(mentioned)-253.8(above,)-262.3(forcing)-262.3(pages)-260.6(at)-253.3(commit)-244.8(is)-245.5(considered)-268.5(too)-247.2(costly.)]TJ 2.5 -1.5375 TD [(If)-321.5(we)-321.5(log)-309.7(only)-309.7(after-images,)-340.4(then)-315.8(there)-326.5(is)-308(suf)]TJ /TT7 1 Tf 18.2972 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(cient)-315.8(information)-316.3(in)-309.7(the)-315.8(log)-309.7(to)-309.7(allow)-315.8(us)-310.8(to)-309.7(redo)-323.1(the)-303.3(transaction)]TJ -21.3533 -1.125 TD [(\(go)-317(forward)-335(to)-309.7(the)-315.8(state)-305(represented)-329.1(by)-300(the)-303.3(after-image\),)-334.1(but)-297.2(we)-309(do)-300(not)-297.2(have)-312.3(the)-303.3(information)-303.8(required)-318.5(to)-297.2(undo)-300(tran-)]TJ T* [(sactions)-403.3(which)-406.2(aborted)-414(after)-418.5(dirty)-398.8(pages)-410.6(were)-419.6(written)-405(to)-397.2(disk.)-633(Therefore,)-421.1(logging)-381.8(only)-384.7(after-images)-415.4(necessitates)]TJ T* [(holding)-244.3(all)-250.5(dirty)-248.8(buffers)-268(in)-247.2(main)-250.5(memory)-255(until)-241.5(commit)-244.8(or)-254.5(writing)-248.8(them)-250.5(to)-247.2(a)-256.2(temporary)]TJ /TT7 1 Tf 34.6 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD (le.)Tj -32.6562 -1.5375 TD [(Since)-290.8(neither)-298.6(constraint)-294.1(\(forcing)-304.3(pages)-298.1(on)-287.5(commit)-282.3(or)-292(buffering)-304.3(pages)-285.6(until)-266.5(commit\))-274.3(was)-282.3(feasible,)-290.6(we)-284(chose)-285.6(to)]TJ -2.5 -1.125 TD [(log)-322.2(both)-322.2(before)-346.3(and)-331.2(after)-343.5(images.)-330(The)-332.8(only)-322.2(remaining)-333.3(consideration)-337.8(is)-320.5(when)-334(changes)-329.3(get)-315.8(written)-317.5(to)-309.7(disk.)-558(Changes)]TJ T* [(affect)-337.1(both)-309.7(data)-322(pages)-323.1(and)-306.2(the)-303.3(log.)-547.2(If)-309(the)-303.3(changed)-318.5(data)-309.5(page)-312.3(is)-295.5(written)-305(before)-321.3(the)-303.3(log)-297.2(page,)-312.3(and)-306.2(the)-303.3(system)-297.2(crashes)]TJ T* [(before)-346.3(the)-328.3(log)-322.2(page)-337.3(is)-320.5(written,)-330(the)-328.3(log)-309.7(will)-306.8(contain)-319.1(insuf)]TJ /TT7 1 Tf 22.9375 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(cient)-313(information)-316.3(to)-309.7(undo)-312.5(the)-315.8(change.)-581(This)-309.7(violates)-314.6(tran-)]TJ -23.4936 -1.125 TD [(saction)-267.5(semantics,)-269.1(since)-270.3(some)-264.2(changed)-281(data)-272(pages)-273.1(may)-265.8(not)-259.7(have)-262.3(been)-262.3(written,)-255(and)-256.1(the)-253.3(database)-270.1(cannot)-259.5(be)-256.2(restored)-266.8(to)]TJ T* [(its)-242.7(pre-transaction)-277.9(state.)]TJ 2.5 -1.5375 TD [(The)-432.8(log)-422.2(record)-446.3(describing)-434.5(an)-431.2(update)-434.5(must)-417.7(be)-431.2(written)-430(to)-422.2(stable)-430(storage)-437.3(before)-433.8(the)-415.8(modi)]TJ /TT7 1 Tf 36.7307 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(ed)-406.8(page.)-674.8(This)-409.7(is)]TJ /TT2 1 Tf -39.7868 -1.125 TD [(write-ahead)-352.6(logging)]TJ /TT4 1 Tf 8.5625 0 TD [(.)-587.5(I)0(f)-346.5(log)-334.7(records)-357.1(are)-354.3(safely)-349.8(written)-342.5(to)-334.7(disk,)-333(data)-347(pages)-348.1(may)-340.8(be)-343.7(written)-342.5(at)-340.8(any)-343.7(time)-335.2(afterwards.)]TJ -8.5625 -1.125 TD [(This)-297.2(means)-307.8(that)-300.5(the)-303.3(only)]TJ /TT7 1 Tf 10.3375 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-297.2(that)-300.5(ever)-316.8(needs)-310.6(to)-297.2(be)-306.2(forced)-321.3(to)-297.2(disk)-295.5(is)-295.5(the)-303.3(log.)-547.2(Since)-303.3(the)-303.3(log)-284.7(is)-283(append-only,)-301.5(modi)]TJ /TT7 1 Tf 34.412 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD (ed)Tj ET endstream endobj 16 0 obj << /ProcSet [/PDF /Text ] /Font << /TT2 4 0 R /TT4 5 0 R /TT7 7 0 R >> /ExtGState << /GS1 9 0 R >> >> endobj 18 0 obj << /Length 11123 >> stream BT /TT4 1 Tf 10 0 0 10 69.375 713.25 Tm 0 g /GS1 gs 0 Tc 0 Tw [(pages)-285.6(always)-285.6(appear)-297.9(at)-278.3(the)-278.3(end)-281.2(and)-281.2(may)-278.3(be)-281.2(written)-267.5(to)-259.7(disk)-258(ef)]TJ /TT7 1 Tf 24.6019 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(ciently)-270.8(in)-259.7(any)]TJ /TT7 1 Tf 5.742 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-259.7(system)-259.7(that)-263(favors)-276(sequential)-270.8(order-)]TJ -31.4562 -1.125 TD [(ing)-247.2(\()]TJ /TT6 1 Tf 1.8625 0 TD (e.g.)Tj /TT4 1 Tf 1.45 0 TD [(,)-250(FFS,)-231.5(log-structured)]TJ /TT7 1 Tf 8.525 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-247.2(system,)-247.2(or)-254.5(an)-256.2(extent-based)-271.8(system\).)]TJ /TT2 1 Tf -12.3937 -2.325 TD [(3.1.2.)-500(Concurrency)-265.1(Control)]TJ /TT4 1 Tf 2.5 -1.5375 TD [(The)-482.8(concurrency)-508.6(control)-480(protocol)-467.5(is)-458(responsible)-470.3(for)-471.5(maintaining)-460.6(consistency)-472(in)-459.7(the)-465.8(presence)-489.9(of)-467(multiple)]TJ -2.5 -1.125 TD [(accesses.)-638.3(There)-381(are)-379.3(several)-381(alternative)-380.3(solutions)-338.2(such)-354.5(as)-354.5(locking,)-350.5(optimistic)-337.5(concurrency)-383.6(control)-355([KUNG81],)-370.3(and)]TJ T* [(timestamp)-296.5(ordering)-312.3([BERN80].)-554.5(Since)-303.3(optimistic)-287.5(methods)-298.8(and)-306.2(timestamp)-296.5(ordering)-312.3(are)-304.3(generally)-304.8(more)-295.3(complex)-294.1(and)]TJ T* [(restrict)-336.1(concurrency)-358.6(without)-319.3(eliminating)-320.3(starvation)-331.6(or)-329.5(deadlocks,)-339(we)-334(chose)-323.1(two-phase)-327.6(locking)-313(\(2PL\).)-567(Strict)-308.5(2PL)-308(is)]TJ T* [(suboptimal)-305.7(for)-321.5(certain)-317.3(data)-309.5(structures)-312.3(such)-304.5(as)-304.5(B-trees)-312.3(because)-323(it)-294.3(can)-312.3(limit)-285.8(concurrency,)-333.6(so)-298.3(we)-309(use)-304.5(a)-306.2(special)-311.1(locking)]TJ T* [(protocol)-255(based)-260.6(on)-250(one)-256.2(described)-268.5(in)-247.2([LEHM81].)]TJ 2.5 -1.5375 TD [(The)-270.3(B-tree)-276.5(locking)-263(protocol)-267.5(we)-271.5(implemented)-266.8(releases)-285.4(locks)-251.7(at)-253.3(internal)-258.3(nodes)-254.5(in)-247.2(the)-253.3(tree)-264(as)-254.5(it)-244.3(descends.)-515.1(A)-252.8(lock)]TJ -2.5 -1.125 TD [(on)-287.5(an)-293.7(internal)-295.8(page)-299.8(is)-283(always)-298.1(released)-299.6(before)-296.3(a)-281.2(lock)-278.3(on)-275(its)-267.7(child)-275.5(is)-270.5(obtained)-281.6(\(that)-280(is,)-270.5(locks)-276.7(are)-291.8(not)]TJ /TT2 1 Tf 39.4125 0 TD (coupled)Tj /TT4 1 Tf 3.6 0 TD ([BAY77])Tj -43.0125 -1.125 TD [(during)-276.7(descent\).)-543.5(When)-287.3(a)-281.2(leaf)-289(\(or)-284(internal\))-287.8(page)-287.3(is)-270.5(split,)-264.8(a)-281.2(write)-282.8(lock)-278.3(is)-270.5(acquired)-295.1(on)-275(the)-278.3(parent)-289(before)-296.3(the)-278.3(lock)-265.8(on)-262.5(the)]TJ T* [(just-split)-249.5(page)-274.8(is)-258(released)-287.1(\(locks)-268.7(are)]TJ /TT2 1 Tf 14.6125 0 TD (coupled)Tj /TT4 1 Tf 3.5875 0 TD [(during)-264.2(ascent\).)-531(Write)-273.6(locks)-264.2(on)-262.5(internal)-270.8(pages)-273.1(are)-279.3(released)-274.6(immediately)]TJ -18.2 -1.125 TD [(after)-268.5(the)-253.3(page)-262.3(is)-245.5(updated,)-259.5(but)-247.2(locks)-251.7(on)-250(leaf)-264(pages)-260.6(are)-266.8(held)-253.3(until)-241.5(the)-253.3(end)-256.2(of)-254.5(the)-253.3(transaction.)]TJ 2.5 -1.5375 TD [(Since)-390.8(locks)-389.2(are)-404.3(released)-412.1(during)-376.7(descent,)-389(the)-378.3(structure)-389(of)-379.5(the)-378.3(tree)-389(may)-378.3(change)-393.5(above)-387.3(a)-381.2(node)-381.1(being)-378.3(used)-379.5(by)]TJ -2.5 -1.125 TD [(some)-351.7(process.)-613.5(If)-359(that)-350.5(process)-363.5(must)-342.7(later)-361.1(ascend)-366.8(the)-353.3(tree)-351.5(because)-360.5(of)-342(a)-343.7(page)-349.8(split,)-327.3(any)-343.7(such)-342(change)-356(must)-330.2(not)-334.7(cause)]TJ T* [(confusion.)-593.7(We)-349.8(use)-342(the)-340.8(technique)-350.3(described)-356(in)-334.7([LEHM81])-351(which)-343.7(exploits)-321(the)-328.3(ordering)-337.3(of)-329.5(data)-334.5(on)-325(a)-331.2(B-tree)-339(page)-337.3(to)]TJ T* [(guarantee)-276.3(that)-250.5(no)-250(process)-263.5(ever)-266.8(gets)-251.7(lost)-242.7(as)-254.5(a)-256.2(result)-253.3(of)-254.5(internal)-258.3(page)-262.3(updates)-257.8(made)-259.5(by)-250(other)-257.8(processes.)]TJ 2.5 -1.5375 TD [(If)-346.5(a)-343.7(transaction)-350.3(that)-338(updates)-345.3(a)-343.7(B-tree)-351.5(aborts,)-343.7(the)-340.8(user-visible)-347(changes)-354.3(to)-322.2(the)-328.3(tree)-339(must)-317.7(be)-331.2(rolled)-330(back.)-587.3(How-)]TJ -2.5 -1.125 TD [(ever,)-279.3(changes)-279.3(to)-247.2(the)-253.3(internal)-258.3(nodes)-254.5(of)-254.5(the)-253.3(tree)-264(need)-262.3(not)-247.2(be)-256.2(rolled)-255(back,)-262.3(since)-257.8(these)-257.8(pages)-260.6(contain)-256.6(no)-250(user-visible)-259.5(data.)]TJ T* [(When)-312.3(rolling)-296(back)-312.3(a)-306.2(transaction,)-312.8(we)-309(roll)-298.8(back)-312.3(all)-300.5(leaf)-314(page)-312.3(updates,)-307.8(but)-297.2(no)-300(internal)-295.8(insertions)-286.3(or)-292(page)-299.8(splits.)-525.7(In)-292(the)]TJ T* [(worst)-327.8(case,)-341.8(this)-317.7(will)-319.3(leave)-340.6(a)-331.2(leaf)-339(page)-337.3(less)-325(than)-328.3(half)-332.8(full.)-573.8(This)-322.2(may)-328.3(cause)-341.8(poor)-329.5(space)-341.8(utilization,)-320.3(but)-322.2(does)-329.5(not)-322.2(lose)]TJ T* [(user)-259(data.)]TJ 2.5 -1.5375 TD [(Holding)-259.7(locks)-264.2(on)-262.5(leaf)-276.5(pages)-273.1(until)-254(transaction)-275.3(commit)-257.3(guarantees)-287.1(that)-263(no)-262.5(other)-270.3(process)-276(can)-274.8(insert)-253.3(or)-254.5(delete)-262.8(data)]TJ -2.5 -1.125 TD [(that)-450.5(has)-454.5(been)-462.3(touched)-459.5(by)-450(this)-430.2(process.)-701(Rolling)-424.5(back)-449.8(insertions)-436.3(and)-443.6(deletions)-439.6(on)-437.5(leaf)-451.5(pages)-448.1(guarantees)-462.1(that)-438(no)]TJ T* [(aborted)-301.5(updates)-295.3(are)-304.3(ever)-304.3(visible)-283.5(to)-284.7(other)-295.3(transactions.)-548.6(Leaving)-298.6(page)-299.8(splits)-275.7(intact)-291.3(permits)-288(us)-285.8(to)-284.7(release)-299.6(internal)-283.3(write)]TJ T* [(locks)-251.7(early.)-514(Thus)-250(transaction)-262.8(semantics)-256.6(are)-266.8(preserved,)-275.8(and)-256.1(locks)-251.7(are)-266.8(held)-253.3(for)-259(shorter)-260.6(periods.)]TJ 2.5 -1.5375 TD [(The)-270.3(extra)-276.5(complexity)-263.5(introduced)-273.6(by)-262.5(this)-255.2(locking)-263(protocol)-267.5(appears)-283.8(substantial,)-260.2(but)-259.7(it)-256.8(is)-245.5(important)-249.3(for)-259(multi-user)]TJ -2.5 -1.125 TD [(execution.)-800.3(The)-545.3(bene)]TJ /TT7 1 Tf 8.9252 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(ts)-539.2(of)-542(non-two-phase)-557.1(locking)-538(on)-537.5(B-trees)-549.8(are)-554.3(well)-540.8(established)-544.1(in)-534.7(the)-540.8(database)-557.6(literature)]TJ -9.4813 -1.125 TD [([BAY77],)-272.7([LEHM81].)-513.5(If)-259(a)-256.2(process)-263.5(held)-253.3(locks)-251.7(until)-241.5(it)-244.3(committed,)-248.1(then)-253.3(a)-256.1(long-running)-253.3(update)-259.5(could)-253.3(lock)-253.3(out)-247.2(all)-250.5(other)]TJ T* [(transactions)-373.6(by)-362.5(preventing)-373.6(any)-368.7(other)-370.3(process)-376(from)-356.2(locking)-350.5(the)-353.3(root)-351.7(page)-362.3(of)-354.5(the)-353.3(tree.)-614(The)-357.8(B-tree)-364(locking)-350.5(protocol)]TJ T* [(described)-281(above)-262.3(guarantees)-274.6(that)-250.5(locks)-251.7(on)-250(internal)-258.3(pages)-260.6(are)-266.8(held)-253.3(for)-259(extremely)-264.5(short)-250(periods,)-256.1(thereby)-264(increasing)-265.6(con-)]TJ T* (currency.)Tj /TT2 1 Tf 0 -2.325 TD [(3.1.3.)-500(Management)-265.1(of)-254.5(Shared)-243.8(Data)]TJ /TT4 1 Tf 2.5 -1.5375 TD [(Database)-335.5(systems)-308(permit)-314.6(many)-315.8(users)-319.8(to)-309.7(examine)-325.3(and)-318.7(update)-322(the)-303.3(same)-307.8(data)-309.5(concurrently.)-571.8(In)-304.5(order)-315.1(to)-297.2(provide)]TJ -2.5 -1.125 TD [(this)-392.7(concurrent)-424.6(access)-421.3(and)-406.2(enforce)-427.4(the)-403.3(write-ahead)-430.8(logging)-394.3(protocol)-405(described)-418.5(in)-397.2(section)-405(3.1.1,)-387.5(we)-396.5(use)-392(a)-393.7(shared)]TJ T* [(memory)-330(buffer)-344.6(manager.)-595.1(Not)-312.5(only)-309.7(does)-317(this)-305.2(provide)-320.3(the)-315.8(guarantees)-337.1(we)-321.5(require,)-331(but)-309.7(a)-318.6(user-level)-332.6(buffer)-332.1(manager)-332.6(is)]TJ T* [(frequently)-403.1(faster)-404.3(than)-390.8(using)-370.5(the)]TJ /TT7 1 Tf 13.3875 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-372.2(system)-372.2(buffer)-394.6(cache.)-649.6(Reads)-381.2(or)-379.5(writes)-381.1(involving)-366.5(the)]TJ /TT7 1 Tf 22.9188 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-372.2(system)-372.2(buffer)-394.6(cache)]TJ -37.4187 -1.125 TD [(often)-332.8(require)-343.5(copying)-328.3(data)-334.5(between)-343.5(user)-334(and)-331.2(kernel)-326.5(space)-329.3(while)-315.8(a)-318.6(user-level)-332.6(buffer)-332.1(manager)-332.6(can)-324.8(return)-324.8(pointers)-315.8(to)]TJ T* [(data)-259.5(pages)-260.6(directly.)-508.3(Additionally,)-244.8(if)-251.7(more)-257.8(than)-253.3(one)-256.1(process)-263.5(uses)-252.8(the)-253.3(same)-257.8(page,)-262.3(then)-253.3(fewer)-274.1(copies)-257.8(may)-253.3(be)-256.1(required.)]TJ /TT2 1 Tf 0 -2.325 TD [(3.2.)-500(Module)-247.2(Architecture)]TJ /TT4 1 Tf 2.5 -1.5375 TD [(The)-420.3(preceding)-420.1(sections)-403.3(described)-418.5(modules)-398.8(for)-409(managing)-406.6(the)-403.3(transaction)-412.8(log,)-397.2(locks,)-401.7(and)-406.2(a)-406.2(cache)-424.6(of)-404.5(shared)]TJ -2.5 -1.125 TD [(buffers.)-568(In)-304.5(addition,)-297.7(we)-309(need)-312.3(to)-297.2(provide)-307.8(functionality)-302.6(for)-309(transaction)]TJ /TT6 1 Tf 28.3 0 TD (begin)Tj /TT4 1 Tf 2.225 0 TD (,)Tj /TT6 1 Tf 0.5375 0 TD (commit)Tj /TT4 1 Tf 2.95 0 TD [(,)-287.5(and)]TJ /TT6 1 Tf 2.275 0 TD (abort)Tj /TT4 1 Tf 2.45 0 TD [(processing,)-298.1(necessi-)]TJ -38.7375 -1.125 TD [(tating)-397.7(a)-406.2(transaction)-412.8(manager.)-670.1(In)-404.5(order)-415.1(to)-397.2(arbitrate)-418.9(concurrent)-424.6(access)-421.3(to)-397.2(locks)-389.2(and)-393.7(buffers,)-405.5(we)-396.5(include)-394.1(a)-393.7(process)]TJ T* [(management)-391.1(module)-363(which)-368.7(manages)-376.5(a)-368.7(collection)-369.6(of)-367(semaphores)-379.3(used)-367(to)-359.7(block)-365.8(and)-368.7(release)-387.1(processes.)-630.5(Finally,)-354(in)]TJ T* [(order)-352.6(to)-334.7(provide)-345.3(a)-343.7(simple,)-333.5(standard)-349.8(interface)-365.4(we)-346.5(have)-349.8(modi)]TJ /TT7 1 Tf 24.4182 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(ed)-331.8(the)-340.8(database)-357.6(access)-358.8(routines)-340.8(\()]TJ /TT2 1 Tf 13.4507 0 TD (db)Tj /TT4 1 Tf 1.1 0 TD [(\(3\)\).)-588.5(For)-323.3(the)-328.3(pur-)]TJ -39.525 -1.125 TD [(poses)-315.3(of)-317(this)-305.2(paper)-329.3(we)-321.5(call)-306.6(the)-303.3(modi)]TJ /TT7 1 Tf 14.8057 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(ed)-294.3(package)-324.6(the)]TJ /TT2 1 Tf 6.3632 0 TD [(Record)-315.1(Manager)]TJ /TT4 1 Tf 7.325 0 TD [(.)-550(Figure)-301.7(one)-306.2(shows)-299.5(the)-303.3(main)-300.5(interfaces)-326.3(and)]TJ -29.05 -1.125 TD [(architecture)-281.2(of)-254.5(LIBTP.)]TJ ET endstream endobj 19 0 obj << /ProcSet [/PDF /Text ] /Font << /TT2 4 0 R /TT4 5 0 R /TT6 6 0 R /TT7 7 0 R >> /ExtGState << /GS1 9 0 R >> >> endobj 21 0 obj << /Length 9635 >> stream BT /TT4 1 Tf 11 0 0 11 231.375 602 Tm 0 g /GS1 gs 0 Tc 0 Tw (log_commit)Tj 10.375 -6.3295 TD (buf_unpin)Tj 0 1.0227 TD (buf_get)Tj 9.875 6.5795 TD (buf_unpin)Tj 0 1.0114 TD (buf_pin)Tj T* (buf_get)Tj /TT2 1 Tf 17 0 0 17 145.375 672 Tm 0.0004 Tc [(Txn)-239.7(Manager)-4577.8(Record)-257.4(Manager)]TJ ET 0 G 1 J 0 j 0.25 w 10 M []0 d 1 i 295.375 701.25 m 295.375 656.875 l 295.375 656.875 m 473.625 656.875 l 473.625 656.875 m 473.625 701.25 l 473.625 701.25 m 295.375 701.25 l 406.875 590 m 406.875 523.125 l 406.875 523.125 m 473.625 523.125 l 473.625 523.125 m 473.625 590 l 473.625 590 m 406.875 590 l 273.125 590 m 273.125 523.125 l 273.125 523.125 m 340 523.125 l 340 523.125 m 340 590 l 340 590 m 273.125 590 l 139.5 590 m 139.5 523.125 l 139.5 523.125 m 206.25 523.125 l 206.25 523.125 m 206.25 590 l 206.25 590 m 139.5 590 l 139.5 701.25 m 139.5 656.875 l 139.5 656.875 m 250.875 656.875 l 250.875 656.875 m 250.875 701.25 l 250.875 701.25 m 139.5 701.25 l S BT /TT4 1 Tf 11 0 0 11 275.875 629.875 Tm 0 Tc (lock)Tj 4.0568 -1.0114 TD (log)Tj -19.3068 0 TD (unlock_all)Tj 11.2045 -2.5341 TD (log_unroll)Tj ET 206.25 478.5 m 206.25 456.25 l 206.25 456.25 m 406.875 456.25 l 406.875 456.25 m 406.875 478.5 l 406.875 478.5 m 206.25 478.5 l 161.75 590 m 164.125 593.75 l 164.125 593.75 m 161.75 592.375 l 161.75 592.375 m 159.25 593.75 l 159.25 593.75 m 161.75 590 l 161.75 590 m 161.75 656.875 l 289.875 478.5 m 287.125 482.25 l 287.125 482.25 m 287.625 479.375 l 287.625 479.375 m 285.375 477.625 l 285.375 477.625 m 289.875 478.5 l 289.875 478.5 m 172.875 523.125 l S BT 11 0 0 11 409.625 485.125 Tm (sleep_on)Tj ET 175.625 590 m 180.125 589.5 l 180.125 589.5 m 177.875 591.125 l 177.875 591.125 m 178 593.875 l 178 593.875 m 175.625 590 l 175.625 590 m 309.375 656.875 l 328.875 478.5 m 333.375 477.75 l 333.375 477.75 m 331.125 479.5 l 331.125 479.5 m 331.5 482.25 l 331.5 482.25 m 328.875 478.5 l 328.875 478.5 m 440.25 523.125 l S BT 11 0 0 11 178.25 485.125 Tm (sleep_on)Tj ET 406.875 556.5 m 403 559 l 403 559 m 404.375 556.5 l 404.375 556.5 m 403 554.125 l 403 554.125 m 406.875 556.5 l 406.875 556.5 m 340 556.5 l S BT 11 0 0 11 194.25 496.25 Tm [(wake)-17469.7(wake)]TJ ET 273.125 556.5 m 269.25 559 l 269.25 559 m 270.75 556.5 l 270.75 556.5 m 269.25 554.125 l 269.25 554.125 m 273.125 556.5 l 273.125 556.5 m 228.625 556.5 l 228.625 556.5 m 228.625 656.875 l S BT /TT2 1 Tf 17 0 0 17 154.5 560.625 Tm (Lock)Tj -0.8676 -1.3162 TD 0.0007 Tc (Manager)Tj 8.9779 1.3162 TD 0 Tc (Log)Tj -1.1176 -1.3162 TD 0.0007 Tc (Manager)Tj 8.4265 1.3162 TD 0 Tc (Buffer)Tj -0.5588 -1.3162 TD 0.0007 Tc (Manager)Tj ET 440.25 590 m 442.75 593.75 l 442.75 593.75 m 440.25 592.375 l 440.25 592.375 m 437.75 593.75 l 437.75 593.75 m 440.25 590 l 440.25 590 m 440.25 656.875 l S BT 17 0 0 17 243.75 460.25 Tm 0.0003 Tc [(Process)-264.3(Manager)]TJ ET 317.75 590 m 320.125 593.75 l 320.125 593.75 m 317.75 592.375 l 317.75 592.375 m 315.25 593.75 l 315.25 593.75 m 317.75 590 l 317.75 590 m 317.75 656.875 l S BT /TT4 1 Tf 11 0 0 11 275.875 621.5 Tm 0 Tc (unlock)Tj ET 306.5 478.5 m 309 482.375 l 309 482.375 m 306.5 481 l 306.5 481 m 304.125 482.375 l 304.125 482.375 m 306.5 478.5 l 306.5 478.5 m 306.5 523.125 l S BT 11 0 0 11 312.125 501.75 Tm (sleep_on)Tj 0 1.0114 TD (wake)Tj /TT2 1 Tf 10 0 0 10 223.75 438.25 Tm [(Figure)-255(1:)-504.5(Library)-248.8(module)-245.5(interfaces.)]TJ /T1 1 Tf -15.4375 -2.25 TD [()200()]TJ /TT2 1 Tf 0 -3.45 TD [(3.2.1.)-500(The)-245.5(Log)-245.5(Manager)]TJ /TT4 1 Tf 2.5 -1.5375 TD (The)Tj /TT2 1 Tf 1.9 0 TD [(Log)-333(Manager)]TJ /TT4 1 Tf 6.2375 0 TD [(enforces)-363.3(the)-340.8(write-ahead)-368.3(logging)-331.8(protocol.)-592.5(Its)-325(primitive)-321.5(operations)-334.5(are)]TJ /TT6 1 Tf 29.3375 0 TD (log)Tj /TT4 1 Tf 1.275 0 TD (,)Tj /TT6 1 Tf 0.575 0 TD (log_commit)Tj /TT4 1 Tf 4.725 0 TD (,)Tj /TT6 1 Tf -46.55 -1.125 TD (log_read)Tj /TT4 1 Tf 3.6125 0 TD (,)Tj /TT6 1 Tf 0.5625 0 TD (log_roll)Tj /TT4 1 Tf 3.525 0 TD (and)Tj /TT6 1 Tf 1.7625 0 TD (log_unroll)Tj /TT4 1 Tf 4.2125 0 TD [(.)-562.5(The)]TJ /TT6 1 Tf 2.6875 0 TD (log)Tj /TT4 1 Tf 1.5875 0 TD [(call)-319.1(performs)-327.6(a)-318.7(buffered)-338.3(write)-320.3(of)-317(the)-315.8(speci)]TJ /TT7 1 Tf 17.3047 0 TD (Þ)Tj /TT4 1 Tf 0.5561 0 TD [(ed)-307.8(log)-297.2(record)-321.3(and)-306.2(returns)-310.6(a)]TJ -35.8108 -1.125 TD [(unique)-453.3(log)-447.2(sequence)-473(number)-457.8(\(LSN\).)-707.3(This)-434.7(LSN)-435.8(may)-440.8(then)-440.8(be)-443.6(used)-442(to)-434.7(retrieve)-459.3(a)-443.6(record)-458.8(from)-443.6(the)-440.8(log)-434.7(using)-433(the)]TJ /TT6 1 Tf T* (log_read)Tj /TT4 1 Tf 3.875 0 TD [(call.)-519.1(The)]TJ /TT6 1 Tf 4.0375 0 TD (log)Tj /TT4 1 Tf 1.5375 0 TD [(interface)-290.4(knows)-263.7(very)-273.1(little)-254.5(about)-265.8(the)-265.8(internal)-270.8(format)-259.5(of)-254.5(the)-253.3(log)-247.2(records)-269.6(it)-244.3(receives.)-524.6(Rather,)-259.5(all)]TJ -9.45 -1.125 TD [(log)-297.2(records)-319.6(are)]TJ 6.375 0 TD 0.0042 Tc [(referenced)-294.7(by)-295.8(a)]TJ 6.6125 0 TD 0 Tc [(header)-322.9(structure,)-314(a)-306.2(log)-297.2(record)-321.3(type,)-303.3(and)-306.1(a)-306.2(character)-336.9(buffer)-319.6(containing)-303.8(the)-303.3(data)-297(to)-284.7(be)]TJ -12.9875 -1.125 TD [(logged.)-515.8(The)-270.3(log)-259.7(record)-283.8(type)-265.8(is)-258(used)-267(to)-259.7(call)-269.1(the)-265.8(appropriate)-284.3(redo)-273.1(and)-268.7(undo)-262.5(routines)-253.3(during)]TJ /TT6 1 Tf 36.1375 0 TD (abort)Tj /TT4 1 Tf 2.4125 0 TD (and)Tj /TT6 1 Tf 1.7 0 TD (commit)Tj /TT4 1 Tf 3.2 0 TD (process-)Tj -43.45 -1.125 TD [(ing.)-547.2(While)-306.6(we)-309(have)-312.3(used)-304.5(the)]TJ /TT2 1 Tf 12.1625 0 TD [(Log)-283(Manager)]TJ /TT4 1 Tf 6.1375 0 TD [(to)-284.7(provide)-295.3(before)-308.8(and)-293.7(after)-306(image)-294.1(logging,)-281.8(it)-281.8(may)-290.8(also)-289.2(be)-293.7(used)-292(for)-296.5(any)]TJ -18.3 -1.125 TD [(of)-254.5(the)-253.3(logging)-244.3(algorithms)-247.7(discussed.)]TJ 2.5 -1.5375 TD (The)Tj /TT6 1 Tf 1.875 0 TD (log_commit)Tj /TT4 1 Tf 5.0375 0 TD [(operation)-323.6(behaves)-329.3(exactly)-325.3(like)-313(the)]TJ /TT6 1 Tf 14.2125 0 TD (log)Tj /TT4 1 Tf 1.5875 0 TD [(operation)-323.6(but)-297.2(guarantees)-324.6(that)-300.5(the)-303.3(log)-297.2(has)-304.5(been)-312.3(forced)]TJ -25.2125 -1.125 TD [(to)-322.2(disk)-320.5(before)-346.3(returning.)-584.5(A)-327.8(discussion)-320.5(of)-329.5(our)-329.5(commit)-319.8(strategy)-334.5(appears)-333.8(in)-309.7(the)-315.8(implementation)-311.1(section)-317.5(\(section)-322(4.2\).)]TJ /TT6 1 Tf T* (Log_unroll)Tj /TT4 1 Tf 4.75 0 TD [(reads)-277.6(log)-259.7(records)-282.1(from)-268.7(the)-265.8(log,)-259.7(following)-261.3(backward)-275.8(transaction)-262.8(pointers)-253.3(and)-256.2(calling)-253.8(the)-253.3(appropriate)-271.8(undo)]TJ -4.75 -1.125 TD [(routines)-328.3(to)-322.2(implement)-323.1(transaction)-337.8(abort.)-582.8(In)-329.5(a)-331.2(similar)-322.7(manner,)]TJ /TT6 1 Tf 25.4875 0 TD (log_roll)Tj /TT4 1 Tf 3.5375 0 TD [(reads)-340.1(log)-322.2(records)-344.6(sequentially)-330.5(forward,)-347.5(cal-)]TJ -29.025 -1.125 TD [(ling)-244.3(the)-253.3(appropriate)-271.8(redo)-260.6(routines)-253.3(to)-247.2(recover)-277.4(committed)-248.1(transactions)-261.1(after)-268.5(a)-256.2(system)-247.2(crash.)]TJ /TT2 1 Tf 0 -2.325 TD [(3.2.2.)-500(The)-245.5(Buffer)-260.6(Manager)]TJ /TT4 1 Tf 2.5 -1.5375 TD (The)Tj /TT2 1 Tf 1.9625 0 TD [(Buffer)-410.6(Manager)]TJ /TT4 1 Tf 7.4875 0 TD [(uses)-402.8(a)-406.2(pool)-397.2(of)-404.5(shared)-415.1(memory)-405(to)-397.2(provide)-407.8(a)-406.2(least-recently-used)-435.7(\(LRU\))-396.5(block)-390.8(cache.)]TJ -11.95 -1.125 TD [(Although)-359.7(the)-365.8(current)-381(library)-372(provides)-368.7(an)-368.7(LRU)-362.5(cache,)-387.1(it)-356.8(would)-362.5(be)-368.7(simple)-358.5(to)-359.7(add)-356.2(alternate)-370.6(replacement)-376.8(policies)-352.1(as)]TJ T* [(suggested)-406.2(by)-400([CHOU85])-413(or)-404.5(to)-397.2(provide)-407.8(multiple)-392(buffer)-419.6(pools)-395.5(with)-397.2(different)-407.6(policies.)-639.6(Transactions)-403.1(request)-399.8(pages)]TJ T* [(from)-318.7(the)-315.8(buffer)-332.1(manager)-332.6(and)-318.7(keep)-324.8(them)]TJ /TT2 1 Tf 16.6375 0 TD (pinned)Tj /TT4 1 Tf 3.2375 0 TD [(to)-309.7(ensure)-315.1(that)-300.5(they)-303.3(are)-316.8(not)-297.2(written)-305(to)-297.2(disk)-295.5(while)-303.3(they)-303.3(are)-316.8(in)-297.2(a)-306.2(logi-)]TJ -19.875 -1.125 TD [(cally)-269.1(inconsistent)-260.2(state.)-517.5(When)-274.8(page)-274.8(replacement)-289.3(is)-258(necessary,)-288.3(the)]TJ /TT2 1 Tf 26.675 0 TD [(Buffer)-260.6(Manager)]TJ /TT7 1 Tf 7.1875 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(nds)-242.2(an)-256.1(unpinned)-253.3(page)-262.3(and)-256.2(then)]TJ -34.4186 -1.125 TD [(checks)-266.8(with)-247.2(the)]TJ /TT2 1 Tf 6.4875 0 TD [(Log)-245.5(Manager)]TJ /TT4 1 Tf 6.0625 0 TD [(to)-247.2(ensure)-265.1(that)-250.5(the)-253.3(write-ahead)-280.8(protocol)-255(is)-245.5(enforced.)]TJ /TT2 1 Tf -12.55 -2.325 TD [(3.2.3.)-500(The)-245.5(Lock)-245.5(Manager)]TJ /TT4 1 Tf 2.5 -1.5375 TD (The)Tj /TT2 1 Tf 1.825 0 TD [(Lock)-258(Manager)]TJ /TT4 1 Tf 6.5875 0 TD [(supports)-260.8(general)-282.6(purpose)-271.5(locking)-263(\(single)-265.8(writer,)-274.8(multiple)-254.5(readers\))-280.3(which)-256.1(is)-245.5(currently)-265.6(used)]TJ -10.9125 -1.125 TD [(to)-259.7(provide)-270.3(two-phase)-265.1(locking)-250.5(and)-256.2(high)-247.2(concurrency)-283.6(B-tree)-264(locking.)-500.5(However,)-272.5(the)-253.3(general)-270.1(purpose)-259(nature)-264(of)-254.5(the)-253.3(lock)]TJ ET endstream endobj 22 0 obj << /ProcSet [/PDF /Text ] /Font << /TT2 4 0 R /TT4 5 0 R /TT6 6 0 R /TT7 7 0 R /T1 8 0 R >> /ExtGState << /GS1 9 0 R >> >> endobj 24 0 obj << /Length 13298 >> stream BT /TT4 1 Tf 10 0 0 10 69.375 713.25 Tm 0 g /GS1 gs 0 Tc 0 Tw [(manager)-332.6(provides)-318.7(the)-315.8(ability)-307.3(to)-309.7(support)-312.5(a)-318.7(variety)-323.6(of)-317(locking)-313(protocols.)-553.3(Currently,)-305(all)-300.5(locks)-301.7(are)-316.8(issued)-300(at)-303.3(the)-303.3(granu-)]TJ 0 -1.125 TD [(larity)-289.6(of)-292(a)-293.7(page)-299.8(\(the)-295.3(size)-295.3(of)-292(a)-293.7(buffer)-307.1(in)-284.7(the)-290.8(buffer)-294.6(pool\))-276.7(which)-281.2(is)-270.5(identi)]TJ /TT7 1 Tf 28.4023 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(ed)-272.7(by)-275(two)-275(4-byte)-282.8(integers)-284.5(\(a)]TJ /TT7 1 Tf 11.6165 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-272.2(id)-272.2(and)-281.2(page)]TJ -41.1311 -1.125 TD [(number\).)-649.8(This)-384.7(provides)-393.7(the)-390.8(necessary)-413.3(information)-378.8(to)-372.2(extend)-384.5(the)]TJ /TT2 1 Tf 27.1 0 TD [(Lock)-370.5(Manager)]TJ /TT4 1 Tf 6.8125 0 TD [(to)-372.2(perform)-391.8(hierarchical)-406.3(locking)]TJ -33.9125 -1.125 TD [([GRAY76].)-588(The)-332.8(current)-343.5(implementation)-323.6(does)-329.5(not)-322.2(support)-325(locks)-326.7(at)-315.8(other)-320.3(granularities)-327(and)-318.7(does)-317(not)-309.7(promote)-317.5(locks;)]TJ T* [(these)-257.8(are)-266.8(obvious)-245.5(future)-262.3(additions)-246(to)-247.2(the)-253.3(system.)]TJ 2.5 -1.5375 TD [(If)-284(an)-281.2(incoming)-272.7(lock)-278.3(request)-287.3(cannot)-284.5(be)-281.2(granted,)-289(the)-278.3(requesting)-284.5(process)-288.5(is)-270.5(queued)-287.3(for)-271.5(the)-265.8(lock)-265.8(and)-268.7(descheduled.)]TJ -2.5 -1.125 TD [(When)-287.3(a)-281.2(lock)-278.3(is)-270.5(released,)-299.6(the)-278.3(wait)-265.8(queue)-274.8(is)-258(traversed)-285.4(and)-268.7(any)-268.7(newly)-268.7(compatible)-269.6(locks)-264.2(are)-279.3(granted.)-526.5(Locks)-268.7(are)-279.3(located)]TJ T* [(via)-340.8(a)]TJ /TT7 1 Tf 2.35 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-334.7(and)-343.7(page)-349.8(hash)-342(table)-344.1(and)-343.7(are)-354.3(chained)-353.1(both)-334.7(by)-337.5(object)-331.6(and)-331.2(by)-325(transaction,)-337.8(facilitating)-331(rapid)-332.8(traversal)-345.1(of)-329.5(the)]TJ -2.9062 -1.125 TD [(lock)-253.3(table)-256.6(during)-251.7(transaction)-262.8(commit)-244.8(and)-256.1(abort.)]TJ 2.5 -1.5375 TD [(The)-345.3(primary)-347(interfaces)-363.8(to)-334.7(the)-340.8(lock)-340.8(manager)-357.6(are)]TJ /TT6 1 Tf 19.775 0 TD (lock)Tj /TT4 1 Tf 1.675 0 TD (,)Tj /TT6 1 Tf 0.5875 0 TD (unlock)Tj /TT4 1 Tf 2.675 0 TD [(,)-337.5(and)]TJ /TT6 1 Tf 2.375 0 TD (lock_unlock_all)Tj /TT4 1 Tf 6.4 0 TD (.)Tj /TT6 1 Tf 0.825 0 TD (Lock)Tj /TT4 1 Tf 2.275 0 TD [(obtains)-323.8(a)-331.2(new)-334(lock)]TJ -39.0875 -1.125 TD [(for)-396.5(a)-393.7(speci)]TJ /TT7 1 Tf 4.4547 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(c)-395.3(object.)-644.1(There)-406(are)-391.8(also)-376.7(two)-375(variants)-384.5(of)-379.5(the)]TJ /TT6 1 Tf 18.7517 0 TD (lock)Tj /TT4 1 Tf 2.05 0 TD (request,)Tj /TT6 1 Tf 3.525 0 TD (lock_upgrade)Tj /TT4 1 Tf 5.8875 0 TD (and)Tj /TT6 1 Tf 1.825 0 TD (lock_downgrade)Tj /TT4 1 Tf 6.675 0 TD [(,)-375(which)]TJ -43.725 -1.125 TD [(allow)-278.3(the)-278.3(caller)-292.3(to)-272.2(atomically)-266.8(trade)-276.5(a)-268.7(lock)-265.8(of)-267(one)-268.7(type)-265.8(for)-271.5(a)-268.7(lock)-265.8(of)-267(another.)]TJ /TT6 1 Tf 30.8375 0 TD (Unlock)Tj /TT4 1 Tf 3.1625 0 TD [(releases)-285.4(a)-268.7(speci)]TJ /TT7 1 Tf 6.2172 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(c)-270.3(mode)-265.8(of)-267(lock)]TJ -40.7733 -1.125 TD [(on)-250(a)-256.2(speci)]TJ /TT7 1 Tf 4.0047 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(c)-257.8(object.)]TJ /TT6 1 Tf 3.9017 0 TD (Lock_unlock_all)Tj /TT4 1 Tf 6.925 0 TD [(releases)-272.9(all)-250.5(the)-253.3(locks)-251.7(associated)-265.6(with)-247.2(a)-256.2(speci)]TJ /TT7 1 Tf 17.6797 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(c)-257.8(transaction.)]TJ /TT2 1 Tf -33.6233 -2.325 TD [(3.2.4.)-500(The)-245.5(Process)-266.8(Manager)]TJ /TT4 1 Tf 2.5 -1.5375 TD (The)Tj /TT2 1 Tf 1.8125 0 TD [(Process)-266.8(Manager)]TJ /TT4 1 Tf 7.6375 0 TD [(acts)-257.8(as)-254.5(a)-256.2(user-level)-270.1(scheduler)-268.5(to)-247.2(make)-259.5(processes)-268(wait)-253.3(on)-250(unavailable)-266.1(locks)-251.7(and)-256.2(pending)]TJ -11.95 -1.125 TD [(buffer)-344.6(cache)-349.6(I/O.)-579.5(For)-310.8(each)-331(process,)-326(a)-318.7(semaphore)-331(is)-308(maintained)-319.6(upon)-312.5(which)-318.6(that)-313(process)-326(waits)-314.2(when)-321.5(it)-306.8(needs)-323.1(to)-309.7(be)]TJ T* [(descheduled.)-545.1(When)-287.3(a)-281.2(process)-288.5(needs)-285.6(to)-272.2(be)-281.2(run,)-267(its)-255.2(semaphore)-281(is)-258(cleared,)-288.8(and)-268.7(the)-265.8(operating)-273.6(system)-259.7(reschedules)-285.4(it.)-256.8(No)]TJ T* [(sophisticated)-366.3(scheduling)-367.5(algorithm)-361.8(is)-345.5(applied;)-353.8(if)-351.7(the)-353.3(lock)-353.3(for)-359(which)-356.2(a)-356.2(process)-363.5(was)-357.3(waiting)-350.5(becomes)-364(available,)-366.1(the)]TJ T* [(process)-363.5(is)-345.5(made)-359.5(runnable.)-614(It)-351.7(would)-350(have)-362.3(been)-362.3(possible)-347.2(to)-347.2(change)-368.5(the)-353.3(kernel’s)-366.8(process)-363.5(scheduler)-368.5(to)-347.2(interact)-364.5(more)]TJ T* (ef)Tj /TT7 1 Tf 0.7769 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(ciently)-258.3(with)-247.2(the)-253.3(lock)-253.3(manager,)-270.1(but)-247.2(doing)-247.2(so)-248.3(would)-250(have)-262.3(compromised)-256.6(our)-254.5(commitment)-245.3(to)-247.2(a)-256.2(user-level)-270.1(package.)]TJ /TT2 1 Tf -1.333 -2.325 TD [(3.2.5.)-500(The)-245.5(Transaction)-245.5(Manager)]TJ /TT4 1 Tf 2.5 -1.5375 TD (The)Tj /TT2 1 Tf 1.825 0 TD [(Transaction)-258(Manager)]TJ /TT4 1 Tf 9.5875 0 TD [(provides)-268.7(the)-265.8(standard)-274.8(interface)-290.4(of)]TJ /TT6 1 Tf 13.75 0 TD (txn_begin)Tj /TT4 1 Tf 3.95 0 TD (,)Tj /TT6 1 Tf 0.5125 0 TD (txn_commit)Tj /TT4 1 Tf 4.675 0 TD [(,)-262.5(and)]TJ /TT6 1 Tf 2.2125 0 TD (txn_abort)Tj /TT4 1 Tf 3.8875 0 TD [(.)-500(I)0(t)-251.7(keeps)]TJ -42.9 -1.125 TD [(track)-339(of)-329.5(all)-325.5(active)-337.8(transactions,)-336.1(assigns)-323.3(unique)-328.3(transaction)-337.8(identi)]TJ /TT7 1 Tf 26.1773 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(ers,)-325.5(and)-318.7(directs)-322(the)-315.8(abort)-320.3(and)-318.7(commit)-307.3(processing.)]TJ -26.7335 -1.125 TD [(When)-324.8(a)]TJ /TT6 1 Tf 3.475 0 TD (txn_begin)Tj /TT4 1 Tf 4.2625 0 TD [(is)-308(issued,)-312.5(the)]TJ /TT2 1 Tf 5.575 0 TD [(Transaction)-308(Manager)]TJ /TT4 1 Tf 9.6875 0 TD [(assigns)-310.8(the)-303.3(next)-303.3(available)-316.1(transaction)-312.8(identi)]TJ /TT7 1 Tf 17.6523 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(er,)-302.2(allocates)-314.5(a)]TJ -41.2085 -1.125 TD [(per-process)-303.6(transaction)-287.8(structure)-289(in)-272.2(shared)-290.1(memory,)-267.5(increments)-275.3(the)-265.8(count)-265.8(of)-267(active)-275.3(transactions,)-273.6(and)-268.7(returns)-273.1(the)-265.8(new)]TJ T* [(transaction)-387.8(identi)]TJ /TT7 1 Tf 7.0523 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(er)-377.1(to)-372.2(the)-378.3(calling)-378.8(process.)-626(The)-370.3(in-memory)-369.1(transaction)-375.3(structure)-376.5(contains)-367.5(a)-368.7(pointer)-367.5(into)-356.8(the)-365.8(lock)]TJ -7.6085 -1.125 TD [(table)-294.1(for)-296.5(locks)-289.2(held)-290.8(by)-287.5(this)-280.2(transaction,)-300.3(the)-290.8(last)-286.3(log)-284.7(sequence)-310.4(number,)-295.3(a)-293.7(transaction)-300.3(state)-292.5(\()]TJ /TT6 1 Tf 36.275 0 TD (idle)Tj /TT4 1 Tf 1.4995 0 TD (,)Tj /TT6 1 Tf 0.538 0 TD (running)Tj /TT4 1 Tf 3.1625 0 TD (,)Tj /TT6 1 Tf 0.525 0 TD (aborting)Tj /TT4 1 Tf 3.4375 0 TD 0.275 Tc [(,o)275(r)]TJ /TT6 1 Tf -45.4375 -1.125 TD 0 Tc (committing\))Tj /TT4 1 Tf 4.8375 0 TD [(,)-250(a)0(n)-256.2(error)-269.6(code,)-262.3(and)-256.1(a)-256.2(semaphore)-268.5(identi)]TJ /TT7 1 Tf 15.5898 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD (er.)Tj -18.4835 -1.5375 TD [(At)-300(commit,)-294.8(the)]TJ /TT2 1 Tf 6.425 0 TD [(Transaction)-295.5(Manager)]TJ /TT4 1 Tf 9.6625 0 TD (calls)Tj /TT6 1 Tf 2.1375 0 TD (log_commit)Tj /TT4 1 Tf 5.025 0 TD [(to)-284.7(record)-308.8(the)-290.8(end)-293.7(of)-292(transaction)-300.3(and)-293.7(to)]TJ /TT7 1 Tf 15.7875 0 TD (ß)Tj /TT4 1 Tf 0.5562 0 TD [(ush)-279.7(the)-290.8(log.)]TJ -42.0937 -1.125 TD [(Then)-295.3(it)-281.8(directs)-297(the)]TJ /TT2 1 Tf 7.6625 0 TD [(Lock)-283(Manager)]TJ /TT4 1 Tf 6.6375 0 TD [(to)-284.7(release)-312.1(all)-288(locks)-276.7(associated)-290.6(with)-272.2(the)-278.3(given)-278.3(transaction.)-537.8(If)-284(a)-281.2(transaction)-287.8(aborts,)]TJ -14.3 -1.125 TD (the)Tj /TT2 1 Tf 1.5625 0 TD [(Transaction)-333(Manager)]TJ /TT4 1 Tf 9.7375 0 TD [(calls)-342.5(on)]TJ /TT6 1 Tf 3.5 0 TD (log_unroll)Tj /TT4 1 Tf 4.5375 0 TD [(to)-322.2(read)-341.8(the)-328.3(transaction’s)-340.6(log)-322.2(records)-344.6(and)-331.2(undo)-325(any)-331.2(modi)]TJ /TT7 1 Tf 22.9807 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(cations)-318.2(to)]TJ -42.8743 -1.125 TD [(the)-253.3(database.)-520.1(As)-251.2(in)-247.2(the)-253.3(commit)-244.8(case,)-266.8(it)-244.3(then)-253.3(calls)]TJ /TT6 1 Tf 19.95 0 TD (lock_unlock_all)Tj /TT4 1 Tf 6.65 0 TD [(to)-247.2(release)-274.6(the)-253.3(transaction’s)-265.6(locks.)]TJ /TT2 1 Tf -26.6 -2.325 TD [(3.2.6.)-500(The)-245.5(Record)-265.1(Manager)]TJ /TT4 1 Tf 2.5 -1.5375 TD (The)Tj /TT2 1 Tf 2.05 0 TD [(Record)-502.6(Manager)]TJ /TT4 1 Tf 8 0 TD [(supports)-485.8(the)-490.8(abstraction)-500.3(of)-492(reading)-501.5(and)-493.7(writing)-486.3(records)-507.1(to)-484.7(a)-493.7(database.)-507.6(We)-499.8(have)]TJ -12.55 -1.125 TD (modi)Tj /TT7 1 Tf 2.0557 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(ed)-269.3(the)-278.3(the)-278.3(database)-282.6(access)-283.8(routines)]TJ /TT2 1 Tf 14.2632 0 TD (db)Tj /TT4 1 Tf 1.1 0 TD [(\(3\))-271.5([BSD91])-263.7(to)-259.7(call)-269.1(the)-265.8(log,)-259.7(lock,)-265.8(and)-268.6(buffer)-282.1(managers.)-531(In)-267(order)-277.6(to)-259.7(pro-)]TJ -17.975 -1.125 TD [(vide)-315.8(functionality)-315.1(to)-309.7(perform)-329.3(undo)-312.5(and)-318.7(redo,)-323.1(the)]TJ /TT2 1 Tf 20.0625 0 TD [(Record)-315.1(Manager)]TJ /TT4 1 Tf 7.625 0 TD (de)Tj /TT7 1 Tf 0.9438 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(nes)-304.5(a)-306.1(collection)-307.1(of)-304.5(log)-297.2(record)-321.3(types)-301.7(and)-306.2(the)]TJ -29.1875 -1.125 TD [(associated)-453.1(undo)-437.5(and)-443.7(redo)-448.1(routines.)-690.8(The)]TJ /TT2 1 Tf 17.275 0 TD [(Log)-433(Manager)]TJ /TT4 1 Tf 6.4375 0 TD [(performs)-452.6(a)-443.6(table)-444.1(lookup)-434.7(on)-437.5(the)-428.3(record)-446.3(type)-428.3(to)-422.2(call)-431.6(the)]TJ -23.7125 -1.125 TD [(appropriate)-396.8(routines.)-878.3(For)-373.3(example,)-387.8(the)-378.3(B-tree)-389(access)-383.8(method)-363(requires)-379.3(two)-362.5(log)-359.7(record)-383.8(types:)-361.3(insert)-365.8(and)-368.7(delete.)-375.3(A)]TJ T* [(replace)-276.3(operation)-261.1(is)-245.5(implemented)-254.3(as)-254.5(a)-256.2(delete)-262.8(followed)-257.8(by)-250(an)-256.2(insert)-253.3(and)-256.2(is)-245.5(logged)-253.3(accordingly.)]TJ /TT2 1 Tf 0 -2.325 TD [(3.3.)-500(Application)-236.5(Architectures)]TJ /TT4 1 Tf 2.5 -1.5375 TD [(The)-345.3(structure)-351.5(of)-342(LIBTP)-334.7(allows)-339.2(application)-344.6(designers)-348.1(to)-334.7(trade)-351.5(off)-346.5(performance)-372.8(and)-331.2(protection.)-583.3(Since)-328.3(a)-331.2(large)]TJ -2.5 -1.125 TD [(portion)-298.8(of)-304.5(LIBTP’s)-300(functionality)-302.6(is)-295.5(provided)-307.8(by)-300(managing)-306.6(structures)-312.3(in)-284.7(shared)-302.6(memory,)-292.5(its)-280.2(structures)-299.8(are)-304.3(subject)-292.5(to)]TJ T* [(corruption)-472(by)-462.5(applications)-468(when)-471.5(the)-465.8(library)-472(is)-458(linked)-463(directly)-470.8(with)-459.7(the)-465.8(application.)-719.6(For)-460.8(this)-455.2(reason,)-477.6(LIBTP)-459.7(is)]TJ T* [(designed)-307.8(to)-297.2(allow)-303.3(compilation)-298.1(into)-294.3(a)-306.2(separate)-312.1(server)-307.1(process)-301(which)-293.7(may)-290.8(be)-293.7(accessed)-314.9(via)-290.8(a)-293.6(socket)-295.3(interface.)-815.4(In)-292(this)]TJ T* [(way)-296.5(LIBTP’s)-287.5(data)-297(structures)-299.8(are)-304.3(protected)-304.8(from)-293.7(application)-294.6(code,)-299.8(but)-284.7(communication)-279.3(overhead)-297.9(is)-270.5(increased.)-549.6(When)]TJ T* [(applications)-418(are)-429.3(trusted,)-403.3(LIBTP)-397.2(may)-403.3(be)-406.2(compiled)-403.8(directly)-408.3(into)-394.3(the)-403.3(application)-407.1(providing)-398.8(improved)-405(performance.)]TJ T* [(Figures)-250(two)-250(and)-256.2(three)-264(show)-251.2(the)-253.3(two)-250(alternate)-270.6(application)-257.1(architectures.)]TJ 2.5 -1.5375 TD [(There)-281(are)-279.3(potentially)-260.6(two)-262.5(modes)-264.2(in)-259.7(which)-268.7(one)-268.7(might)-254(use)-267(LIBTP)-259.7(in)-259.7(a)-256.2(server)-269.6(based)-260.6(architecture.)-531.3(In)-254.5(the)]TJ /TT7 1 Tf 41.025 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(rst,)-243.8(the)]TJ -44.0811 -1.125 TD [(server)-344.6(would)-325(provide)-332.8(the)-328.3(capability)-332.1(to)-322.2(respond)-334(to)-322.2(requests)-335.6(to)-322.2(each)-331(of)-317(the)-315.8(low)-312.5(level)-319.1(modules)-311.3(\(lock,)-320.3(log,)-309.7(buffer,)-332.1(and)]TJ T* [(transaction)-475.3(managers\).)-735.5(Unfortunately,)-478.1(the)-465.8(performance)-497.8(of)-467(such)-467(a)-468.7(system)-459.7(is)-458(likely)-460.2(to)-459.7(be)-468.7(blindingly)-438.7(slow)-448.3(since)]TJ ET endstream endobj 25 0 obj << /ProcSet [/PDF /Text ] /Font << /TT2 4 0 R /TT4 5 0 R /TT6 6 0 R /TT7 7 0 R >> /ExtGState << /GS1 9 0 R >> >> endobj 27 0 obj << /Length 10936 >> stream 0 G 1 J 0 j 0.25 w 10 M []0 d /GS1 gs 1 i 233 651.375 m 234.875 654.625 l 234.875 654.625 m 233 653.375 l 233 653.375 m 231.25 654.625 l 231.25 654.625 m 233 651.375 l 233 651.375 m 233 684.625 l 164.375 651.375 m 166.25 654.625 l 166.25 654.625 m 164.375 653.375 l 164.375 653.375 m 162.625 654.625 l 162.625 654.625 m 164.375 651.375 l 164.375 651.375 m 164.375 684.625 l S 0.75 w 141.625 651.375 m 141.625 551.625 l 141.625 551.625 m 258 551.625 l 258 551.625 m 258 651.375 l 258 651.375 m 141.625 651.375 l S 0.25 w 158.25 634.875 m 158.25 618.25 l 158.25 618.25 m 241.375 618.25 l 241.375 618.25 m 241.375 634.875 l 241.375 634.875 m 158.25 634.875 l S BT /TT2 1 Tf 8 0 0 8 189.125 623.125 Tm 0 g 0 Tc 0 Tw (driver)Tj -0.1719 -4.1562 TD (LIBTP)Tj ET 158.25 618.25 m 158.25 568.25 l 158.25 568.25 m 241.375 568.25 l 241.375 568.25 m 241.375 618.25 l 241.375 618.25 m 158.25 618.25 l S 0.75 w 141.625 701.25 m 141.625 684.625 l 141.625 684.625 m 258 684.625 l 258 684.625 m 258 701.25 l 258 701.25 m 141.625 701.25 l S BT /TT4 1 Tf 8 0 0 8 128.625 654.75 Tm (txn_abort)Tj -1.0156 1.2969 TD (txn_commit)Tj 0.8438 1.2969 TD (txn_begin)Tj 13.9375 -1.2969 TD (db_ops)Tj /TT2 1 Tf -9.4062 3.0469 TD [(Application)-264.6(Program)]TJ 1.4063 -6.2187 TD [(Server)-231(Process)]TJ /TT4 1 Tf -0.125 3.625 TD [(socket)-242.2(interface)]TJ ET 0.25 w 231 671.125 m 228.125 672.875 l 228.125 672.875 m 229.125 671.125 l 229.125 671.125 m 228.125 669.25 l 228.125 669.25 m 231 671.125 l 231 671.125 m 224.75 671.125 l 165.5 671.125 m 168.375 669.25 l 168.375 669.25 m 167.25 671.125 l 167.25 671.125 m 168.375 672.875 l 168.375 672.875 m 165.5 671.125 l 165.5 671.125 m 171.75 671.125 l S 0.75 w 357.75 684.625 m 357.75 551.625 l 357.75 551.625 m 474.25 551.625 l 474.25 551.625 m 474.25 684.625 l 474.25 684.625 m 357.75 684.625 l S 0.25 w 397.25 618.25 m 400.25 619.75 l 400.25 619.75 m 398.125 619.75 l 398.125 619.75 m 397.125 621.625 l 397.125 621.625 m 397.25 618.25 l 397.25 618.25 m 416 651.375 l 436.75 618.25 m 436.75 621.625 l 436.75 621.625 m 435.75 619.75 l 435.75 619.75 m 433.75 619.625 l 433.75 619.625 m 436.75 618.25 l 436.75 618.25 m 416 651.375 l S BT /TT2 1 Tf 8 0 0 8 404 589.875 Tm (LIBTP)Tj ET 374.375 618.25 m 374.375 568.25 l 374.375 568.25 m 457.625 568.25 l 457.625 568.25 m 457.625 618.25 l 457.625 618.25 m 374.375 618.25 l 374.375 668 m 374.375 651.375 l 374.375 651.375 m 457.625 651.375 l 457.625 651.375 m 457.625 668 l 457.625 668 m 374.375 668 l S BT 8 0 0 8 396 656.25 Tm (Application)Tj /TT4 1 Tf -3.5781 -1.7969 TD (txn_begin)Tj -0.8438 -1.2969 TD (txn_commit)Tj 1.0156 -1.3125 TD (txn_abort)Tj 8.0469 1.3125 TD (db_ops)Tj /TT2 1 Tf -4.8437 8.0937 TD [(Single)-263.2(Process)]TJ -36.625 -20.8437 TD [(Figure)-480(2:)-479.5(Server)-465.3(Architecture.)]TJ /TT4 1 Tf 14.3125 0 TD [(In)-479.5(this)-477(con)]TJ /TT7 1 Tf 4.6782 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD (guration,)Tj -19.5469 -1.4062 TD [(the)-418.9(library)-412.6(is)-426.8(loaded)-412.6(into)-428.7(a)-415.5(server)-400.9(process)-407.2(which)-415.5(is)-411.1(ac-)]TJ T* [(cessed)-233.9(via)-247.1(a)-243.7(socket)-242.2(interface.)]TJ /TT2 1 Tf 27.375 2.8125 TD [(Figure)-917.5(3:)-901.4(Single)-919.4(Process)-888.7(Architecture.)]TJ /TT4 1 Tf 19.9375 0 TD [(In)-901.4(this)]TJ -19.9375 -1.4062 TD (con)Tj /TT7 1 Tf 1.4439 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(guration,)-433.1(the)-418.9(library)-412.6(routines)-418.9(are)-404.3(loaded)-412.6(as)-417(part)-414.1(of)]TJ -2 -1.4063 TD [(the)-247.1(application)-244.6(and)-243.7(accessed)-221.2(via)-247.1(a)-243.6(subroutine)-247.1(interface.)]TJ /T1 1 Tf 10 0 0 10 69.375 491.625 Tm [()200()]TJ /TT4 1 Tf 0 -3.45 TD [(modifying)-258.5(a)-268.7(piece)-278.1(of)-267(data)-272(would)-262.5(require)-281(three)-264(or)-254.5(possibly)-241(four)-259(separate)-274.6(communications:)-249.8(one)-256.2(to)-247.2(lock)-253.3(the)-253.3(data,)-259.5(one)-256.2(to)]TJ 0 -1.125 TD [(obtain)-325.5(the)-328.3(data,)-334.5(one)-331.2(to)-322.2(log)-322.2(the)-328.3(modi)]TJ /TT7 1 Tf 14.7057 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(cation,)-319.8(and)-331.2(possibly)-316(one)-331.2(to)-322.2(transmit)-322.7(the)-328.3(modi)]TJ /TT7 1 Tf 18.5188 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(ed)-319.3(data.)-334.5(Figure)-314.2(four)-321.5(shows)-312(the)]TJ -34.3368 -1.125 TD [(relative)-389.5(performance)-410.3(for)-384(retrieving)-375.3(a)-368.7(single)-361.3(record)-383.8(using)-358(the)-365.8(record)-383.8(level)-369.1(call)-369.1(versus)-369.8(using)-358(the)-365.8(lower)-373.1(level)-369.1(buffer)]TJ T* [(management)-291.1(and)-281.2(locking)-275.5(calls.)-780(The)-282.8(2:1)-272.2(ratio)-280(observed)-277.6(in)-259.7(the)-265.8(single)-261.3(process)-276(case)-279.3(re)]TJ /TT7 1 Tf 33.8769 0 TD (ß)Tj /TT4 1 Tf 0.5562 0 TD [(ects)-274.8(the)-265.8(additional)-263.5(overhead)-285.4(of)]TJ -34.433 -1.125 TD [(parsing)-356.2(eight)-338(commands)-342.5(rather)-356(than)-340.8(one)-343.7(while)-340.8(the)-340.8(3:1)-334.7(ratio)-342.5(observed)-352.6(in)-334.7(the)-340.8(client/server)-358.1(architecture)-368.8(re)]TJ /TT7 1 Tf 42.5644 0 TD (ß)Tj /TT4 1 Tf 0.5562 0 TD [(ects)-349.8(both)]TJ -43.1205 -1.125 TD [(the)-328.3(parsing)-331.2(and)-331.2(the)-328.3(communication)-329.3(overheard.)-589.9(Although)-309.7(there)-326.5(may)-315.8(be)-318.6(applications)-318(which)-318.6(could)-315.8(tolerate)-327(such)-317(per-)]TJ T* [(formance,)-337.1(it)-306.8(seems)-318.7(far)-327.6(more)-320.3(feasible)-328.1(to)-309.7(support)-312.5(a)-318.7(higher)-320.3(level)-306.6(interface,)-327.9(such)-304.5(as)-304.5(that)-300.5(provided)-307.8(by)-300(a)-306.2(query)-310.6(language)]TJ T* (\()Tj /TT6 1 Tf 0.3375 0 TD (e.g.)Tj /TT4 1 Tf 1.7 0 TD [(SQL)-248.3([SQL86]\).)]TJ 0.4625 -1.5375 TD [(Although)-297.2(LIBTP)-297.2(does)-304.5(not)-297.2(have)-312.3(an)-306.2(SQL)-298.3(parser,)-319.6(we)-296.5(have)-299.8(built)-279(a)-293.6(server)-307.1(application)-294.6(using)-283(the)-290.8(toolkit)-276.2(command)]TJ -2.5 -1.125 TD [(language)-478.1(\(TCL\))-470.3([OUST90].)-722.7(The)-470.3(server)-482.1(supports)-460.8(a)-468.7(command)-469.1(line)-463(interface)-490.4(similar)-460.2(to)-459.7(the)-465.8(subroutine)-453.3(interface)]TJ T* (de)Tj /TT7 1 Tf 0.9438 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(ned)-256.2(in)]TJ /TT2 1 Tf 2.725 0 TD (db)Tj /TT4 1 Tf 1.1 0 TD [(\(3\).)-509(Since)-253.3(it)-244.3(is)-245.5(based)-260.6(on)-250(TCL,)-248.8(it)-244.3(provides)-256.2(control)-255(structures)-262.3(as)-254.5(well.)]TJ /TT2 1 Tf -5.325 -2.325 TD [(4.)-500(Implementation)]TJ T* [(4.1.)-500(Locking)-236.5(and)-237.7(Deadlock)-250(Detection)]TJ /TT4 1 Tf 2.5 -1.5375 TD [(LIBTP)-372.2(uses)-377.8(two-phase)-390.1(locking)-375.5(for)-384(user)-384(data.)-634.5(Strictly)-368.2(speaking,)-382.8(the)-365.8(two)-362.5(phases)-371.5(in)-359.7(two-phase)-377.6(locking)-363(are)-379.3(a)]TJ /TT2 1 Tf -2.5 -1.125 TD (grow)Tj /TT4 1 Tf 2.5125 0 TD [(phase,)-348.1(during)-326.7(which)-331.2(locks)-326.7(are)-341.8(acquired,)-345.1(and)-331.2(a)]TJ /TT2 1 Tf 19.175 0 TD (shrink)Tj /TT4 1 Tf 3.0875 0 TD [(phase,)-335.6(during)-326.7(which)-331.2(locks)-326.7(are)-341.8(released.)-599.6(No)-327.8(lock)-328.3(may)]TJ -24.775 -1.125 TD [(ever)-341.8(be)-331.2(acquired)-332.6(during)-314.2(the)-315.8(shrink)-312.5(phase.)-573.1(The)-320.3(grow)-319.8(phase)-323.1(lasts)-309.7(until)-304(the)]TJ /TT7 1 Tf 30.1 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(rst)-306.3(release,)-337.1(which)-318.7(marks)-318.7(the)-315.8(start)-315.8(of)-317(the)]TJ -30.6562 -1.125 TD [(shrink)-312.5(phase.)-573.1(In)-317(practice,)-335.9(the)-315.8(grow)-319.8(phase)-323.1(lasts)-309.7(for)-321.5(the)-315.8(duration)-317.5(of)-317(a)-318.7(transaction)-325.3(in)-309.7(LIBTP)-309.7(and)-318.7(in)-309.7(commercial)-330.3(data-)]TJ T* [(base)-298.1(systems.)-533(The)-282.8(shrink)-275(phase)-285.6(takes)-282.8(place)-290.6(during)-276.7(transaction)-287.8(commit)-269.8(or)-279.5(abort.)-532.8(This)-272.2(means)-282.8(that)-275.5(locks)-276.7(are)-291.8(acquired)]TJ T* [(on)-250(demand)-259.5(during)-251.7(the)-253.3(lifetime)-252.6(of)-254.5(a)-256.2(transaction,)-262.8(and)-256.2(held)-253.3(until)-241.5(commit)-244.8(time,)-247.7(at)-253.3(which)-256.1(point)-244.3(all)-250.5(locks)-251.7(are)-266.8(released.)]TJ 2.5 -1.5375 TD [(If)-296.5(multiple)-279.5(transactions)-298.6(are)-304.3(active)-300.3(concurrently,)-309.3(deadlocks)-301.5(can)-299.8(occur)-304.3(and)-293.7(must)-280.2(be)-293.7(detected)-306.4(and)-293.7(resolved.)-537.3(The)]TJ -2.5 -1.125 TD [(lock)-278.3(table)-281.6(can)-287.3(be)-281.2(thought)-269.3(of)-279.5(as)-279.5(a)-281.2(representation)-298.4(of)-279.5(a)-281.1(directed)-292.3(graph.)-535.6(The)-282.8(nodes)-279.5(in)-259.7(the)-265.8(graph)-273.1(are)-279.3(transactions.)-523.6(Edges)]TJ T* [(represent)-372.9(the)]TJ /TT2 1 Tf 5.6125 0 TD (waits-for)Tj /TT4 1 Tf 4.2 0 TD [(relation)-358.3(between)-368.5(transactions;)-358.3(if)-351.7(transaction)]TJ /TT6 1 Tf 18.2375 0 TD (A)Tj /TT4 1 Tf 0.9625 0 TD [(is)-345.5(waiting)-350.5(for)-359(a)-356.1(lock)-353.3(held)-353.3(by)-350(transaction)]TJ /TT6 1 Tf 16.925 0 TD (B)Tj /TT4 1 Tf 0.6125 0 TD (,)Tj -46.55 -1.125 TD [(then)-290.8(a)-293.7(directed)-304.8(edge)-299.8(exists)-284.7(from)]TJ /TT6 1 Tf 13.2625 0 TD (A)Tj /TT4 1 Tf 0.8875 0 TD (to)Tj /TT6 1 Tf 1.05 0 TD (B)Tj /TT4 1 Tf 0.8875 0 TD [(in)-272.2(the)-278.3(graph.)-535.6(A)-277.8(deadlock)-290.6(exists)-272.2(if)-276.7(a)-281.2(cycle)-290.6(appears)-296.3(in)-272.2(the)-278.3(graph.)-535.6(By)-270.5(conven-)]TJ -16.0875 -1.125 TD [(tion,)-244.3(no)-250(transaction)-262.8(ever)-266.8(waits)-251.7(for)-259(a)-256.2(lock)-253.3(it)-244.3(already)-270.1(holds,)-245.5(so)-248.3(re)]TJ /TT7 1 Tf 24.9894 0 TD (ß)Tj /TT4 1 Tf 0.5562 0 TD [(exive)-264(edges)-260.6(are)-266.8(impossible.)]TJ -23.0455 -1.5375 TD [(A)-290.3(distinguished)-279(process)-301(monitors)-281.8(the)-290.8(lock)-290.8(table,)-294.1(searching)-306(for)-296.5(cycles.)-539(The)-282.8(frequency)-302.4(with)-272.2(which)-281.2(this)-267.7(process)]TJ -2.5 -1.125 TD [(runs)-290.3(is)-283(user-settable;)-306.4(for)-296.5(the)-290.8(multi-user)-289.6(tests)-284.7(discussed)-292(in)-284.7(section)-292.5(5.1.2,)-287.5(it)-281.8(has)-292(been)-299.8(set)-289.2(to)-284.7(wake)-302.6(up)-287.5(every)-291.8(second,)-285.6(but)]TJ T* [(more)-282.8(sophisticated)-278.8(schedules)-287.3(are)-279.3(certainly)-277(possible.)-509.7(When)-274.8(a)-268.7(cycle)-278.1(is)-258(detected,)-281.4(one)-268.7(of)-267(the)-265.8(transactions)-273.6(in)-259.7(the)-265.8(cycle)-278.1(is)]TJ T* [(nominated)-303.8(and)-306.2(aborted.)-564(When)-312.3(the)-303.3(transaction)-312.8(aborts,)-293.7(it)-281.8(rolls)-284.7(back)-299.8(its)-280.2(changes)-304.3(and)-293.7(releases)-310.4(its)-280.2(locks,)-289.2(thereby)-301.5(break-)]TJ T* [(ing)-247.2(the)-253.3(cycle)-265.6(in)-247.2(the)-253.3(graph.)]TJ ET endstream endobj 28 0 obj << /ProcSet [/PDF /Text ] /Font << /TT2 4 0 R /TT4 5 0 R /TT6 6 0 R /TT7 7 0 R /T1 8 0 R >> /ExtGState << /GS1 9 0 R >> >> endobj 30 0 obj << /Length 18886 >> stream 0 G 1 J 0 j 0.25 w 10 M [1 1.5 ]0 d /GS1 gs 1 i 233.25 683.875 m 400.5 683.875 l 233.25 663.125 m 400.5 663.125 l 233.25 642.125 m 400.5 642.125 l 233.25 621.25 m 400.5 621.25 l 233.25 600.375 m 400.5 600.375 l 233.25 579.375 m 400.5 579.375 l S 1.25 w []0 d 233.25 558.5 m 400.5 558.5 l S q 372.625 595.125 13.875 -36.625 re W* n 0 g q 0.96 0 0 15.36 372.24 579.42 cm /Im1 Do Q q 0.96 0 0 15.36 373.2 579.42 cm /Im1 Do Q q 0.96 0 0 15.36 374.16 579.42 cm /Im1 Do Q q 0.96 0 0 15.36 375.12 579.42 cm /Im1 Do Q q 0.96 0 0 15.36 376.08 579.42 cm /Im1 Do Q q 0.96 0 0 15.36 377.04 579.42 cm /Im1 Do Q q 0.96 0 0 15.36 378 579.42 cm /Im1 Do Q q 0.96 0 0 15.36 378.96 579.42 cm /Im1 Do Q q 0.96 0 0 15.36 379.92 579.42 cm /Im1 Do Q q 0.96 0 0 15.36 380.88 579.42 cm /Im1 Do Q q 0.96 0 0 15.36 381.84 579.42 cm /Im1 Do Q q 0.96 0 0 15.36 382.8 579.42 cm /Im1 Do Q q 0.96 0 0 15.36 383.76 579.42 cm /Im1 Do Q q 0.96 0 0 15.36 384.72 579.42 cm /Im1 Do Q q 0.96 0 0 15.36 385.68 579.42 cm /Im1 Do Q q 0.96 0 0 15.36 372.24 564.0601 cm /Im1 Do Q q 0.96 0 0 15.36 373.2 564.0601 cm /Im1 Do Q q 0.96 0 0 15.36 374.16 564.0601 cm /Im1 Do Q q 0.96 0 0 15.36 375.12 564.0601 cm /Im1 Do Q q 0.96 0 0 15.36 376.08 564.0601 cm /Im1 Do Q q 0.96 0 0 15.36 377.04 564.0601 cm /Im1 Do Q q 0.96 0 0 15.36 378 564.0601 cm /Im1 Do Q q 0.96 0 0 15.36 378.96 564.0601 cm /Im1 Do Q q 0.96 0 0 15.36 379.92 564.0601 cm /Im1 Do Q q 0.96 0 0 15.36 380.88 564.0601 cm /Im1 Do Q q 0.96 0 0 15.36 381.84 564.0601 cm /Im1 Do Q q 0.96 0 0 15.36 382.8 564.0601 cm /Im1 Do Q q 0.96 0 0 15.36 383.76 564.0601 cm /Im1 Do Q q 0.96 0 0 15.36 384.72 564.0601 cm /Im1 Do Q q 0.96 0 0 15.36 385.68 564.0601 cm /Im1 Do Q q 0.96 0 0 6.24 372.24 557.8201 cm /Im3 Do Q q 0.96 0 0 6.24 373.2 557.8201 cm /Im3 Do Q q 0.96 0 0 6.24 374.16 557.8201 cm /Im3 Do Q q 0.96 0 0 6.24 375.12 557.8201 cm /Im3 Do Q q 0.96 0 0 6.24 376.08 557.8201 cm /Im3 Do Q q 0.96 0 0 6.24 377.04 557.8201 cm /Im3 Do Q q 0.96 0 0 6.24 378 557.8201 cm /Im3 Do Q q 0.96 0 0 6.24 378.96 557.8201 cm /Im3 Do Q q 0.96 0 0 6.24 379.92 557.8201 cm /Im3 Do Q q 0.96 0 0 6.24 380.88 557.8201 cm /Im3 Do Q q 0.96 0 0 6.24 381.84 557.8201 cm /Im3 Do Q q 0.96 0 0 6.24 382.8 557.8201 cm /Im3 Do Q q 0.96 0 0 6.24 383.76 557.8201 cm /Im3 Do Q q 0.96 0 0 6.24 384.72 557.8201 cm /Im3 Do Q q 0.96 0 0 6.24 385.68 557.8201 cm /Im3 Do Q Q 0.25 w 372.625 595.125 13.875 -36.625 re S q 330.75 673.375 14 -114.875 re W* n 0 g q 0.96 0 0 15.36 330 657.1801 cm /Im4 Do Q q 0.96 0 0 15.36 330.96 657.1801 cm /Im4 Do Q q 0.96 0 0 15.36 331.92 657.1801 cm /Im4 Do Q q 0.96 0 0 15.36 332.88 657.1801 cm /Im4 Do Q q 0.96 0 0 15.36 333.84 657.1801 cm /Im4 Do Q q 0.96 0 0 15.36 334.8 657.1801 cm /Im4 Do Q q 0.96 0 0 15.36 335.76 657.1801 cm /Im4 Do Q q 0.96 0 0 15.36 336.72 657.1801 cm /Im4 Do Q q 0.96 0 0 15.36 337.68 657.1801 cm /Im4 Do Q q 0.96 0 0 15.36 338.64 657.1801 cm /Im4 Do Q q 0.96 0 0 15.36 339.6 657.1801 cm /Im4 Do Q q 0.96 0 0 15.36 340.56 657.1801 cm /Im4 Do Q q 0.96 0 0 15.36 341.52 657.1801 cm /Im4 Do Q q 0.96 0 0 15.36 342.48 657.1801 cm /Im4 Do Q q 0.96 0 0 15.36 343.44 657.1801 cm /Im4 Do Q q 0.96 0 0 15.36 344.4 657.1801 cm /Im4 Do Q q 0.96 0 0 15.36 330 641.8201 cm /Im4 Do Q q 0.96 0 0 15.36 330.96 641.8201 cm /Im4 Do Q q 0.96 0 0 15.36 331.92 641.8201 cm /Im4 Do Q q 0.96 0 0 15.36 332.88 641.8201 cm /Im4 Do Q q 0.96 0 0 15.36 333.84 641.8201 cm /Im4 Do Q q 0.96 0 0 15.36 334.8 641.8201 cm /Im4 Do Q q 0.96 0 0 15.36 335.76 641.8201 cm /Im4 Do Q q 0.96 0 0 15.36 336.72 641.8201 cm /Im4 Do Q q 0.96 0 0 15.36 337.68 641.8201 cm /Im4 Do Q q 0.96 0 0 15.36 338.64 641.8201 cm /Im4 Do Q q 0.96 0 0 15.36 339.6 641.8201 cm /Im4 Do Q q 0.96 0 0 15.36 340.56 641.8201 cm /Im4 Do Q q 0.96 0 0 15.36 341.52 641.8201 cm /Im4 Do Q q 0.96 0 0 15.36 342.48 641.8201 cm /Im4 Do Q q 0.96 0 0 15.36 343.44 641.8201 cm /Im4 Do Q q 0.96 0 0 15.36 344.4 641.8201 cm /Im4 Do Q q 0.96 0 0 15.36 330 626.4601 cm /Im4 Do Q q 0.96 0 0 15.36 330.96 626.4601 cm /Im4 Do Q q 0.96 0 0 15.36 331.92 626.4601 cm /Im4 Do Q q 0.96 0 0 15.36 332.88 626.4601 cm /Im4 Do Q q 0.96 0 0 15.36 333.84 626.4601 cm /Im4 Do Q q 0.96 0 0 15.36 334.8 626.4601 cm /Im4 Do Q q 0.96 0 0 15.36 335.76 626.4601 cm /Im4 Do Q q 0.96 0 0 15.36 336.72 626.4601 cm /Im4 Do Q q 0.96 0 0 15.36 337.68 626.4601 cm /Im4 Do Q q 0.96 0 0 15.36 338.64 626.4601 cm /Im4 Do Q q 0.96 0 0 15.36 339.6 626.4601 cm /Im4 Do Q q 0.96 0 0 15.36 340.56 626.4601 cm /Im4 Do Q q 0.96 0 0 15.36 341.52 626.4601 cm /Im4 Do Q q 0.96 0 0 15.36 342.48 626.4601 cm /Im4 Do Q q 0.96 0 0 15.36 343.44 626.4601 cm /Im4 Do Q q 0.96 0 0 15.36 344.4 626.4601 cm /Im4 Do Q q 0.96 0 0 15.36 330 611.1 cm /Im4 Do Q q 0.96 0 0 15.36 330.96 611.1 cm /Im4 Do Q q 0.96 0 0 15.36 331.92 611.1 cm /Im4 Do Q q 0.96 0 0 15.36 332.88 611.1 cm /Im4 Do Q q 0.96 0 0 15.36 333.84 611.1 cm /Im4 Do Q q 0.96 0 0 15.36 334.8 611.1 cm /Im4 Do Q q 0.96 0 0 15.36 335.76 611.1 cm /Im4 Do Q q 0.96 0 0 15.36 336.72 611.1 cm /Im4 Do Q q 0.96 0 0 15.36 337.68 611.1 cm /Im4 Do Q q 0.96 0 0 15.36 338.64 611.1 cm /Im4 Do Q q 0.96 0 0 15.36 339.6 611.1 cm /Im4 Do Q q 0.96 0 0 15.36 340.56 611.1 cm /Im4 Do Q q 0.96 0 0 15.36 341.52 611.1 cm /Im4 Do Q q 0.96 0 0 15.36 342.48 611.1 cm /Im4 Do Q q 0.96 0 0 15.36 343.44 611.1 cm /Im4 Do Q q 0.96 0 0 15.36 344.4 611.1 cm /Im4 Do Q q 0.96 0 0 15.36 330 595.7401 cm /Im4 Do Q q 0.96 0 0 15.36 330.96 595.7401 cm /Im4 Do Q q 0.96 0 0 15.36 331.92 595.7401 cm /Im4 Do Q q 0.96 0 0 15.36 332.88 595.7401 cm /Im4 Do Q q 0.96 0 0 15.36 333.84 595.7401 cm /Im4 Do Q q 0.96 0 0 15.36 334.8 595.7401 cm /Im4 Do Q q 0.96 0 0 15.36 335.76 595.7401 cm /Im4 Do Q q 0.96 0 0 15.36 336.72 595.7401 cm /Im4 Do Q q 0.96 0 0 15.36 337.68 595.7401 cm /Im4 Do Q q 0.96 0 0 15.36 338.64 595.7401 cm /Im4 Do Q q 0.96 0 0 15.36 339.6 595.7401 cm /Im4 Do Q q 0.96 0 0 15.36 340.56 595.7401 cm /Im4 Do Q q 0.96 0 0 15.36 341.52 595.7401 cm /Im4 Do Q q 0.96 0 0 15.36 342.48 595.7401 cm /Im4 Do Q q 0.96 0 0 15.36 343.44 595.7401 cm /Im4 Do Q q 0.96 0 0 15.36 344.4 595.7401 cm /Im4 Do Q q 0.96 0 0 15.36 330 580.3801 cm /Im4 Do Q q 0.96 0 0 15.36 330.96 580.3801 cm /Im4 Do Q q 0.96 0 0 15.36 331.92 580.3801 cm /Im4 Do Q q 0.96 0 0 15.36 332.88 580.3801 cm /Im4 Do Q q 0.96 0 0 15.36 333.84 580.3801 cm /Im4 Do Q q 0.96 0 0 15.36 334.8 580.3801 cm /Im4 Do Q q 0.96 0 0 15.36 335.76 580.3801 cm /Im4 Do Q q 0.96 0 0 15.36 336.72 580.3801 cm /Im4 Do Q q 0.96 0 0 15.36 337.68 580.3801 cm /Im4 Do Q q 0.96 0 0 15.36 338.64 580.3801 cm /Im4 Do Q q 0.96 0 0 15.36 339.6 580.3801 cm /Im4 Do Q q 0.96 0 0 15.36 340.56 580.3801 cm /Im4 Do Q q 0.96 0 0 15.36 341.52 580.3801 cm /Im4 Do Q q 0.96 0 0 15.36 342.48 580.3801 cm /Im4 Do Q q 0.96 0 0 15.36 343.44 580.3801 cm /Im4 Do Q q 0.96 0 0 15.36 344.4 580.3801 cm /Im4 Do Q q 0.96 0 0 15.36 330 565.02 cm /Im4 Do Q q 0.96 0 0 15.36 330.96 565.02 cm /Im4 Do Q q 0.96 0 0 15.36 331.92 565.02 cm /Im4 Do Q q 0.96 0 0 15.36 332.88 565.02 cm /Im4 Do Q q 0.96 0 0 15.36 333.84 565.02 cm /Im4 Do Q q 0.96 0 0 15.36 334.8 565.02 cm /Im4 Do Q q 0.96 0 0 15.36 335.76 565.02 cm /Im4 Do Q q 0.96 0 0 15.36 336.72 565.02 cm /Im4 Do Q q 0.96 0 0 15.36 337.68 565.02 cm /Im4 Do Q q 0.96 0 0 15.36 338.64 565.02 cm /Im4 Do Q q 0.96 0 0 15.36 339.6 565.02 cm /Im4 Do Q q 0.96 0 0 15.36 340.56 565.02 cm /Im4 Do Q q 0.96 0 0 15.36 341.52 565.02 cm /Im4 Do Q q 0.96 0 0 15.36 342.48 565.02 cm /Im4 Do Q q 0.96 0 0 15.36 343.44 565.02 cm /Im4 Do Q q 0.96 0 0 15.36 344.4 565.02 cm /Im4 Do Q q 0.96 0 0 7.2 330 557.82 cm /Im5 Do Q q 0.96 0 0 7.2 330.96 557.82 cm /Im5 Do Q q 0.96 0 0 7.2 331.92 557.82 cm /Im5 Do Q q 0.96 0 0 7.2 332.88 557.82 cm /Im5 Do Q q 0.96 0 0 7.2 333.84 557.82 cm /Im5 Do Q q 0.96 0 0 7.2 334.8 557.82 cm /Im5 Do Q q 0.96 0 0 7.2 335.76 557.82 cm /Im5 Do Q q 0.96 0 0 7.2 336.72 557.82 cm /Im5 Do Q q 0.96 0 0 7.2 337.68 557.82 cm /Im5 Do Q q 0.96 0 0 7.2 338.64 557.82 cm /Im5 Do Q q 0.96 0 0 7.2 339.6 557.82 cm /Im5 Do Q q 0.96 0 0 7.2 340.56 557.82 cm /Im5 Do Q q 0.96 0 0 7.2 341.52 557.82 cm /Im5 Do Q q 0.96 0 0 7.2 342.48 557.82 cm /Im5 Do Q q 0.96 0 0 7.2 343.44 557.82 cm /Im5 Do Q q 0.96 0 0 7.2 344.4 557.82 cm /Im5 Do Q Q 330.75 673.375 14 -114.875 re S q 289 579.375 13.875 -20.875 re W* n 0 g q 0.96 0 0 15.36 290.64 563.1 cm /Im2 Do Q q 0.96 0 0 15.36 291.6 563.1 cm /Im2 Do Q q 0.96 0 0 15.36 292.56 563.1 cm /Im2 Do Q q 0.96 0 0 15.36 293.52 563.1 cm /Im2 Do Q q 0.96 0 0 15.36 294.48 563.1 cm /Im2 Do Q q 0.96 0 0 15.36 295.44 563.1 cm /Im2 Do Q q 0.96 0 0 15.36 296.4 563.1 cm /Im2 Do Q q 0.96 0 0 15.36 297.36 563.1 cm /Im2 Do Q q 0.96 0 0 15.36 298.32 563.1 cm /Im2 Do Q q 0.96 0 0 15.36 299.28 563.1 cm /Im2 Do Q q 0.96 0 0 15.36 300.24 563.1 cm /Im2 Do Q q 0.96 0 0 15.36 301.2 563.1 cm /Im2 Do Q q 0.96 0 0 15.36 302.16 563.1 cm /Im2 Do Q q 0.96 0 0 5.28 290.64 557.82 cm /Im6 Do Q q 0.96 0 0 5.28 291.6 557.82 cm /Im6 Do Q q 0.96 0 0 5.28 292.56 557.82 cm /Im6 Do Q q 0.96 0 0 5.28 293.52 557.82 cm /Im6 Do Q q 0.96 0 0 5.28 294.48 557.82 cm /Im6 Do Q q 0.96 0 0 5.28 295.44 557.82 cm /Im6 Do Q q 0.96 0 0 5.28 296.4 557.82 cm /Im6 Do Q q 0.96 0 0 5.28 297.36 557.82 cm /Im6 Do Q q 0.96 0 0 5.28 298.32 557.82 cm /Im6 Do Q q 0.96 0 0 5.28 299.28 557.82 cm /Im6 Do Q q 0.96 0 0 5.28 300.24 557.82 cm /Im6 Do Q q 0.96 0 0 5.28 301.2 557.82 cm /Im6 Do Q q 0.96 0 0 5.28 302.16 557.82 cm /Im6 Do Q Q 289 579.375 13.875 -20.875 re S q 247.125 603 14 -44.5 re W* n 0 g q 0.96 0 0 15.36 259.92 587.1 cm /Im8 Do Q q 0.96 0 0 15.36 260.88 587.1 cm /Im8 Do Q q 0.96 0 0 15.36 259.92 571.7401 cm /Im8 Do Q q 0.96 0 0 15.36 260.88 571.7401 cm /Im8 Do Q q 0.96 0 0 15.36 259.92 556.3801 cm /Im8 Do Q q 0.96 0 0 15.36 260.88 556.3801 cm /Im8 Do Q Q 247.125 603 14 -44.5 re S BT /TT2 1 Tf 10 0 0 10 330 536.125 Tm 0 g 0 Tc 0 Tw (Client/Server)Tj -8.5375 0 TD [(Single)-238.2(Process)]TJ 7 0 0 7 369.625 547.375 Tm (record)Tj -6.9107 0 TD (component)Tj -5.0179 0 TD (record)Tj -7.125 0 TD (components)Tj -2.8036 4.1607 TD (.1)Tj 0 3 TD (.2)Tj 0 2.9821 TD (.3)Tj T* (.4)Tj T* (.5)Tj 0 2.9643 TD (.6)Tj -2.5536 2.9107 TD [(Elapsed)-252.7(Time)]TJ 0.4107 -1 TD [(\(in)-261.6(seconds\))]TJ 8 0 0 8 69.375 510.125 Tm [(Figure)-308.1(4:)-307.6(Comparison)-315.4(of)-307.6(High)-325.7(and)-325.2(Low)-314(Level)-308.1(Interfaces.)]TJ /TT4 1 Tf 25.2969 0 TD [(Elapsed)-287.6(time)-300.8(in)-300.3(seconds)-287.1(to)-300.3(perform)-279.3(a)-290.5(single)-298.8(record)-274.4(retrieval)-278.3(from)-290.5(a)-290.5(command)-291(line)]TJ -25.2969 -1.4063 TD [(\(rather)-397.9(than)-418.9(a)-415.5(procedural)-380.9(interface\))-373(is)-411.1(shown)-404.3(on)-406.2(the)-403.3(y)-406.2(axis.)-654.8(The)-398.4(‘‘component’’)-380.9(numbers)-399.9(re)]TJ /TT7 1 Tf 38.1987 0 TD (ß)Tj /TT4 1 Tf 0.5562 0 TD [(ect)-392.1(the)-403.3(timings)-421.4(when)-396.5(the)-403.3(record)-383.8(is)-411.1(retrieved)-384.3(by)]TJ -38.7549 -1.4063 TD [(separate)-318.4(calls)-339.4(to)-347.2(the)-340.8(lock)-340.8(manager)-323.2(and)-337.4(buffer)-322.8(manager)-323.2(while)-340.8(the)-325.2(‘‘record’’)-286.1(timings)-343.3(were)-307.1(obtained)-322.3(by)-328.1(using)-333(a)-321.8(single)-330.1(call)-322.3(to)-331.5(the)-325.2(record)-305.7(manager.)]TJ T* [(The)-304.7(2:1)-315.9(ratio)-308.1(observed)-296.4(for)-302.7(the)-309.6(single)-314.5(process)-297.8(case)-294.9(is)-301.8(a)-290.5(r)0(e)]TJ /TT7 1 Tf 22.9956 0 TD (ß)Tj /TT4 1 Tf 0.5562 0 TD [(ection)-286.1(of)-292(the)-293.9(parsing)-290.5(overhead)-272.9(for)-287.1(executing)-284.7(eight)-297.4(separate)-271.5(commands)-292.5(rather)-277.8(than)-293.9(one.)]TJ -23.5518 -1.4063 TD [(The)-289.1(additional)-297.9(factor)-277.8(of)-292(one)-290.5(re)]TJ /TT7 1 Tf 12.3862 0 TD (ß)Tj /TT4 1 Tf 0.5562 0 TD [(ected)-276.4(in)-300.3(the)-293.9(3:1)-300.3(ratio)-292.5(for)-271.5(the)-278.3(client/server)-261.2(architecture)-500(is)-286.1(due)-274.9(to)-284.7(the)-278.3(communication)-279.3(overhead.)-507.3(The)-273.4(true)-273.4(ratios)-278.3(are)]TJ -12.9424 -1.4063 TD [(actually)-272.5(worse)-268.1(since)-273.4(the)-278.3(component)-275.4(timings)-296.4(do)-281.2(not)-269(re)]TJ /TT7 1 Tf 21.5425 0 TD (ß)Tj /TT4 1 Tf 0.5562 0 TD [(ect)-251.5(the)-262.7(search)-243.2(times)-271(within)-272.5(each)-246.6(page)-252.9(or)-260.7(the)-262.7(time)-269.5(required)-246.6(to)-269(transmit)-269.5(the)-262.7(page)-252.9(between)-246.6(the)]TJ -22.0986 -1.4062 TD [(two)-250(processes.)]TJ /T1 1 Tf 10 0 0 10 69.375 431.375 Tm [()200()]TJ /TT2 1 Tf 0 -3.45 TD [(4.2.)-500(Group)-241(Commit)]TJ /TT4 1 Tf 2.5 -1.5375 TD [(Since)-328.3(the)-328.3(log)-322.2(must)-317.7(be)]TJ /TT7 1 Tf 9.2375 0 TD (ß)Tj /TT4 1 Tf 0.5562 0 TD [(ushed)-323.3(to)-322.2(disk)-308(at)-315.8(commit)-307.3(time,)-310.2(disk)-308(bandwidth)-315.8(fundamentally)-324.1(limits)-296.7(the)-315.8(rate)-326.5(at)-315.8(which)]TJ -12.2937 -1.125 TD [(transactions)-273.6(complete.)-522.5(Since)-265.8(most)-242.7(transactions)-261.1(write)-257.8(only)-247.2(a)-256.1(few)-263.5(small)-246(records)-269.6(to)-247.2(the)-253.3(log,)-247.2(the)-253.3(last)-248.8(page)-262.3(of)-254.5(the)-253.3(log)-247.2(will)]TJ T* (be)Tj /TT7 1 Tf 1.2875 0 TD (ß)Tj /TT4 1 Tf 0.5562 0 TD [(ushed)-335.8(once)-349.8(by)-337.5(every)-354.3(transaction)-350.3(which)-343.7(writes)-343.6(to)-334.7(it.)-581.8(In)-342(the)-340.8(naive)-347(implementation,)-336.1(these)]TJ /TT7 1 Tf 36.1313 0 TD (ß)Tj /TT4 1 Tf 0.5562 0 TD [(ushes)-321.7(would)-325(happen)]TJ -38.5312 -1.125 TD (serially.)Tj 2.5 -1.5375 TD [(LIBTP)-384.7(uses)]TJ /TT2 1 Tf 5.275 0 TD [(group)-381.3(commit)]TJ /TT4 1 Tf 6.5625 0 TD [([DEWI84])-411.6(in)-384.7(order)-402.6(to)-384.7(amortize)-389.5(the)-378.3(cost)-376.7(of)-379.5(one)-381.2(synchronous)-382.3(disk)-370.5(write)-382.8(across)]TJ -14.3375 -1.125 TD [(multiple)-367(transactions.)-636.1(Group)-382.3(commit)-357.3(provides)-368.7(a)-368.7(way)-371.5(for)-371.5(a)-368.6(group)-367(of)-367(transactions)-373.6(to)-359.7(commit)-357.3(simultaneously.)-607.3(The)]TJ /TT7 1 Tf T* (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(rst)-368.8(several)-393.5(transactions)-386.1(to)-372.2(commit)-357.3(write)-370.3(their)-367.5(changes)-379.3(to)-359.7(the)-365.8(in-memory)-369.1(log)-359.7(page,)-374.8(then)-365.8(sleep)-370.3(on)-362.5(a)-368.7(distinguished)]TJ -0.5562 -1.125 TD [(semaphore.)-556(Later,)-303.1(a)-293.7(committing)-276.7(transaction)]TJ /TT7 1 Tf 18.1125 0 TD (ß)Tj /TT4 1 Tf 0.5562 0 TD [(ushes)-284.2(the)-290.8(page)-299.8(to)-284.7(disk,)-270.5(and)-281.2(wakes)-288.5(up)-275(all)-275.5(its)-267.7(sleeping)-280(peers.)-540.1(The)-282.8(point)]TJ -18.6687 -1.125 TD [(at)-278.3(which)-281.2(changes)-291.8(are)-291.8(actually)-285(written)-280(is)-270.5(determined)-289.5(by)-275(three)-289(thresholds.)-526.7(The)]TJ /TT7 1 Tf 31.325 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(rst)-268.8(is)-258(the)]TJ /TT6 1 Tf 3.6813 0 TD [(group)-260.8(threshold)]TJ /TT4 1 Tf 6.6875 0 TD [(and)-268.7(de)]TJ /TT7 1 Tf 2.6564 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD (nes)Tj -45.4625 -1.125 TD [(the)-265.8(minimum)-248.3(number)-270.3(of)-267(transactions)-273.6(which)-256.2(must)-242.7(be)-256.2(active)-262.8(in)-247.2(the)-253.3(system)-247.2(before)-271.3(transactions)-261.1(are)-266.8(forced)-271.3(to)-247.2(participate)]TJ T* [(in)-359.7(a)-368.7(group)-367(commit.)-607.3(The)-370.3(second)-373.1(is)-358(the)]TJ /TT6 1 Tf 16.25 0 TD [(wait)-352.3(threshold)]TJ /TT4 1 Tf 6.2125 0 TD [(which)-368.7(is)-345.5(expressed)-369.6(as)-354.5(the)-353.3(percentage)-382.4(of)-354.5(active)-362.8(transactions)]TJ -22.4625 -1.125 TD [(waiting)-388(to)-384.7(be)-393.7(committed.)-635.6(The)-395.3(last)-386.3(is)-383(the)]TJ /TT6 1 Tf 17.4375 0 TD [(logdelay)-394.1(threshold)]TJ /TT4 1 Tf 8 0 TD [(which)-381.2(indicates)-383.3(how)-377.8(much)-378.3(un)]TJ /TT7 1 Tf 12.4625 0 TD (ß)Tj /TT4 1 Tf 0.5561 0 TD [(ushed)-373.3(log)-372.2(should)-370.5(be)]TJ -38.4561 -1.125 TD [(allowed)-259.5(to)-247.2(accumulate)-272.3(before)-271.3(a)-256.2(waiting)-250.5(transaction’s)-515.6(commit)-244.8(record)-271.3(is)]TJ /TT7 1 Tf 28.7125 0 TD (ß)Tj /TT4 1 Tf 0.5562 0 TD (ushed.)Tj -26.7687 -1.5375 TD [(Group)-269.8(commit)-257.3(can)-274.8(substantially)-244.8(improve)-255(performance)-285.3(for)-259(high-concurrency)-285.3(environments.)-506.6(If)-259(only)-247.2(a)-256.2(few)-263.5(tran-)]TJ -2.5 -1.125 TD [(sactions)-290.8(are)-291.8(running,)-276.7(it)-269.3(is)-270.5(unlikely)-272.7(to)-272.2(improve)-280(things)-267.7(at)-278.3(all.)-525.5(The)-282.8(crossover)-293(point)-269.3(is)-270.5(the)-278.3(point)-269.3(at)-278.3(which)-281.2(the)-278.3(transaction)]TJ T* [(commit)-294.8(rate)-314(is)-295.5(limited)-292(by)-300(the)-303.3(bandwidth)-303.3(of)-304.5(the)-303.3(device)-315.6(on)-300(which)-306.2(the)-303.3(log)-297.2(resides.)-560.6(If)-309(processes)-318(are)-316.8(trying)-298.8(to)]TJ /TT7 1 Tf 43.35 0 TD (ß)Tj /TT4 1 Tf 0.5562 0 TD [(ush)-279.7(the)]TJ -43.9062 -1.125 TD [(log)-247.2(faster)-266.8(than)-253.3(the)-253.3(log)-247.2(disk)-245.5(can)-262.3(accept)-271.8(data,)-259.5(then)-253.3(group)-254.5(commit)-244.8(will)-244.3(increase)-274.6(the)-253.3(commit)-244.8(rate.)]TJ /TT2 1 Tf 0 -2.325 TD [(4.3.)-500(Kernel)-256.6(Intervention)-254.5(for)-260.6(Synchronization)]TJ /TT4 1 Tf 2.5 -1.5375 TD [(Since)-265.8(LIBTP)-259.7(uses)-265.3(data)-272(in)-259.7(shared)-277.6(memory)-267.5(\()]TJ /TT6 1 Tf 17.3125 0 TD (e.g.)Tj /TT4 1 Tf 1.7125 0 TD [(the)-253.3(lock)-253.3(table)-256.6(and)-256.1(buffer)-269.6(pool\))-251.7(it)-244.3(must)-242.7(be)-256.1(possible)-247.2(for)-259(a)-256.1(process)]TJ -21.525 -1.125 TD [(to)-284.7(acquire)-307.6(exclusive)-298.6(access)-296.3(to)-272.2(shared)-290.1(data)-284.5(in)-272.2(order)-290.1(to)-272.2(prevent)-289(corruption.)-534.5(In)-279.5(addition,)-272.7(the)-278.3(process)-288.5(manager)-295.1(must)-267.7(put)]TJ T* [(processes)-305.5(to)-284.7(sleep)-295.3(when)-296.5(the)-290.8(lock)-290.8(or)-292(buffer)-307.1(they)-290.8(request)-299.8(is)-283(in)-284.7(use)-292(by)-287.5(some)-289.2(other)-295.3(process.)-538.5(In)-279.5(the)-278.3(LIBTP)-272.2(implementa-)]TJ 0 -1.325 TD [(tion)-319.3(under)-335.6(Ultrix)-323.8(4.0)]TJ 7 0 0 7 153.875 122.875 Tm (2)Tj 10 0 0 10 157.375 118.875 Tm [(,)-325(w)0(e)-321.5(use)-317(System)-305.2(V)-315.3(semaphores)-329.3(to)-309.7(provide)-320.3(this)-305.2(synchronization.)-575.3(Semaphores)-324.8(implemented)-316.8(in)]TJ -8.8 -1.125 TD [(this)-380.2(fashion)-393.7(turn)-389.2(out)-384.7(to)-384.7(be)-393.7(an)-393.7(expensive)-401.5(choice)-403.1(for)-384(synchronization,)-387.8(because)-397.9(each)-393.5(access)-396.3(traps)-381.2(to)-372.2(the)-378.3(kernel)-389(and)]TJ /T1 1 Tf 8 0 0 8 69.375 98.625 Tm ()Tj /TT4 1 Tf 5 0 0 5 90.875 88.875 Tm (2)Tj 8 0 0 8 95.375 85.75 Tm [(Ultrix)-252(and)-243.7(DEC)-250(are)-232.4(trademarks)-229.5(of)-245.1(Digital)-253.9(Equipment)-252.4(Corporation.)]TJ ET endstream endobj 31 0 obj << /ProcSet [/PDF /Text /ImageB ] /Font << /TT2 4 0 R /TT4 5 0 R /TT6 6 0 R /TT7 7 0 R /T1 8 0 R >> /XObject << /Im1 32 0 R /Im2 33 0 R /Im3 34 0 R /Im4 35 0 R /Im5 36 0 R /Im6 37 0 R /Im8 38 0 R >> /ExtGState << /GS1 9 0 R >> >> endobj 40 0 obj << /Length 22873 >> stream BT /TT4 1 Tf 10 0 0 10 69.375 713.25 Tm 0 g /GS1 gs 0 Tc 0 Tw [(executes)-270.1(atomically)-254.3(there.)]TJ 2.5 -1.5375 TD [(On)-315.3(architectures)-342.1(that)-313(support)-312.5(atomic)-316.3(test-and-set,)-328.1(a)-318.6(much)-315.8(better)-323.6(choice)-328.1(would)-312.5(be)-318.6(to)-309.7(attempt)-313.5(to)-309.7(obtain)-313(a)-306.2(spin-)]TJ -2.5 -1.125 TD [(lock)-265.8(with)-259.7(a)-268.7(test-and-set,)-278.1(and)-268.7(issue)-262.5(a)-268.7(system)-259.7(call)-269.1(only)-259.7(if)-264.2(the)-265.8(spinlock)-261.3(is)-258(unavailable.)-528.6(Since)-253.3(virtually)-249.3(all)-250.5(semaphores)-266.8(in)]TJ T* [(LIBTP)-297.2(are)-316.8(uncontested)-298.6(and)-293.7(are)-304.3(held)-290.8(for)-296.5(very)-298.1(short)-287.5(periods)-293.7(of)-292(time,)-285.2(this)-280.2(would)-287.5(improve)-292.5(performance.)-572.8(For)-285.8(example,)]TJ T* [(processes)-293(must)-267.7(acquire)-295.1(exclusive)-286.1(access)-296.3(to)-272.2(buffer)-294.6(pool)-272.2(metadata)-291.1(in)-272.2(order)-290.1(to)]TJ /TT7 1 Tf 30.725 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(nd)-268.8(and)-281.2(pin)-272.2(a)-281.2(buffer)-294.6(in)-259.7(shared)-277.6(memory.)]TJ -31.2812 -1.125 TD [(This)-297.2(semaphore)-318.5(is)-295.5(requested)-318.5(most)-292.7(frequently)-303.1(in)-284.7(LIBTP.)-534.7(However,)-310(once)-299.8(it)-281.8(is)-283(acquired,)-307.6(only)-284.7(a)-293.7(few)-301(instructions)-283.5(must)]TJ T* [(be)-318.7(executed)-321.8(before)-321.3(it)-294.3(is)-295.5(released.)-574.6(On)-302.8(one)-306.2(architecture)-331.2(for)-309(which)-306.2(we)-309(were)-319.6(able)-309.5(to)-297.2(gather)-314(detailed)-310(pro)]TJ /TT7 1 Tf 40.883 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(ling)-292.7(informa-)]TJ -41.4392 -1.125 TD [(tion,)-369.3(the)-378.3(cost)-364.2(of)-367(the)-365.8(semaphore)-381(calls)-367.5(accounted)-384.3(for)-371.5(25%)-367(of)-367(the)-365.8(total)-360.2(time)-360.2(spent)-364.2(updating)-363(the)-365.8(metadata.)-628.6(This)-359.7(was)]TJ T* [(fairly)-259.5(consistent)-250.5(across)-263.5(most)-242.7(of)-254.5(the)-253.3(critical)-261.6(sections.)]TJ 2.5 -1.5375 TD [(In)-329.5(an)-331.2(attempt)-326(to)-322.2(quantify)-330(the)-315.8(overhead)-335.4(of)-317(kernel)-326.5(synchronization,)-325.3(we)-321.5(ran)-323.1(tests)-309.7(on)-312.5(a)-318.6(version)-318.7(of)-317(4.3BSD-Reno)]TJ -2.5 -1.125 TD [(which)-443.7(had)-443.7(been)-437.3(modi)]TJ /TT7 1 Tf 9.1557 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(ed)-419.3(to)-422.2(support)-425(binary)-432.8(semaphore)-443.5(facilities)-432.1(similar)-422.7(to)-422.2(those)-426.7(described)-443.5(in)-422.2([POSIX91].)-681.8(The)]TJ -9.7118 -1.125 TD [(hardware)-342.8(platform)-319.1(consisted)-315.8(of)-304.5(an)-306.2(HP300)-296.7(\(33MHz)-311.8(MC68030\))-298.3(workstation)-303.3(with)-297.2(16MBytes)-295.5(of)-304.5(main)-300.5(memory,)-305(and)-306.2(a)]TJ T* [(600MByte)-284.7(HP7959)-284.2(SCSI)-275.2(disk)-283(\(17)-292(ms)-283(average)-316.6(seek)-285.6(time\).)-527.1(We)-287.3(ran)-285.6(three)-289(sets)-275(of)-279.5(comparisons)-282.8(which)-281.2(are)-291.8(summarized)]TJ T* (in)Tj /TT7 1 Tf 1.125 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD (gure)Tj /TT7 1 Tf 2.1313 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(ve.)-350(In)-354.5(each)-368.5(comparison)-359.5(we)-359(ran)-360.6(two)-350(tests,)-347.2(one)-356.2(using)-345.5(hardware)-380.3(spinlocks)-347.2(and)-343.7(the)-340.8(other)-345.3(using)-333(kernel)-351.5(call)]TJ -4.3687 -1.125 TD [(synchronization.)-612.8(Since)-353.3(the)-353.3(test)-348.8(was)-344.8(run)-342(single-user,)-349.8(none)-343.7(of)-342(the)-340.8(the)-340.8(locks)-339.2(were)-357.1(contested.)-598.6(In)-342(the)]TJ /TT7 1 Tf 40.4 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(rst)-331.3(two)-337.5(sets)-337.5(of)]TJ -40.9562 -1.125 TD [(tests,)-322.2(we)-334(ran)-335.6(the)-328.3(full)-323.8(transaction)-337.8(processing)-335.6(benchmark)-345.1(described)-343.5(in)-322.2(section)-330(5.1.)-562.5(In)-317(one)-318.6(case)-329.3(we)-321.5(ran)-323.1(with)-309.7(both)-309.7(the)]TJ T* [(database)-295.1(and)-281.2(log)-272.2(on)-275(the)-278.3(same)-282.8(disk)-270.5(\(1)-279.5(Disk\))-277.8(and)-281.2(in)-272.2(the)-278.3(second,)-285.6(we)-284(ran)-285.6(with)-272.2(the)-278.3(database)-295.1(and)-281.2(log)-259.7(on)-262.5(separate)-287.1(disks)-256.3(\(2)]TJ T* [(Disk\).)-590.3(In)-342(the)-340.8(last)-336.3(test,)-336.3(we)-346.5(wanted)-349.8(to)-334.7(create)-363.8(a)-343.7(CPU)-329.7(bound)-337.5(environment,)-345.8(so)-335.8(we)-334(used)-329.5(a)-331.1(database)-345.1(small)-321(enough)-331.2(to)]TJ /TT7 1 Tf 45.975 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD (t)Tj -46.5312 -1.125 TD [(completely)-382.1(in)-372.2(the)-378.3(cache)-399.6(and)-381.2(issued)-375(read-only)-393.5(transactions.)-623.6(The)-370.3(results)-364.2(in)]TJ /TT7 1 Tf 30.8625 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD (gure)Tj /TT7 1 Tf 2.1438 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(ve)-362.5(express)-376(the)-365.8(kernel)-376.5(call)-369.1(syn-)]TJ -34.1187 -1.125 TD [(chronization)-314.5(performance)-335.3(as)-304.5(a)-306.2(percentage)-332.4(of)-304.5(the)-303.3(spinlock)-298.8(performance.)-585.3(For)-298.3(example,)-312.8(in)-297.2(the)-303.3(1)-300(disk)-295.5(case,)-316.8(the)-290.8(kernel)]TJ T* [(call)-331.6(implementation)-323.6(achieved)-346.8(4.4)-312.5(TPS)-301.9(\(transactions)-328.1(per)-323.1(second\))-327.6(while)-315.8(the)-315.8(semaphore)-331(implementation)-311.1(achieved)-334.3(4.6)]TJ T* [(TPS,)-276.9(and)-293.7(the)-290.8(relative)-302(performance)-322.8(of)-292(the)-290.8(kernel)-289(synchronization)-287.8(is)-270.5(96%)-279.5(that)-275.5(of)-279.5(the)-278.3(spinlock)-273.8(\(100)-279.5(*)-275(4.4)-275(/)-272.2(4.6\).)-279.5(There)]TJ T* [(are)-266.8(two)-250(striking)-244.3(observations)-257.8(from)-256.2(these)-257.8(results:)]TJ /T1 1 Tf 1 -1.5375 TD ()Tj /TT4 1 Tf 1.5 0 TD [(even)-262.3(when)-259(the)-253.3(system)-247.2(is)-245.5(disk)-245.5(bound,)-250(the)-253.3(CPU)-242.2(cost)-251.7(of)-254.5(synchronization)-262.8(is)-245.5(noticeable,)-266.1(and)]TJ /T1 1 Tf -1.5 -1.5375 TD ()Tj /TT4 1 Tf 1.5 0 TD [(when)-259(we)-259(are)-266.8(CPU)-242.2(bound,)-250(the)-253.3(difference)-285.3(is)-245.5(dramatic)-264.5(\(67%\).)]TJ /TT2 1 Tf -2.5 -2.325 TD [(4.4.)-500(Transaction)-245.5(Protected)-279.1(Access)-268(Methods)]TJ /TT4 1 Tf 2.5 -1.5375 TD [(The)-295.3(B-tree)-301.5(and)]TJ /TT7 1 Tf 6.3875 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(xed)-287.5(length)-275.5(recno)-291.8(\(record)-300.8(number\))-287.3(access)-296.3(methods)-273.8(have)-287.3(been)-287.3(modi)]TJ /TT7 1 Tf 26.7995 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(ed)-269.3(to)-272.2(provide)-282.8(transaction)]TJ -36.7993 -1.125 TD [(protection.)-520.8(Whereas)-289.9(the)-265.8(previously)-265.8(published)-261.3(interface)-290.4(to)-259.7(the)-265.8(access)-283.8(routines)-265.8(had)-268.7(separate)-287.1(open)-268.7(calls)-267.5(for)-259(each)-268.5(of)-254.5(the)]TJ /T1 1 Tf 0 -2.325 TD [()200()]TJ ET q 1 i 372.25 209.25 14.375 -46.75 re W* n q 0.96 0 0 15.36 372.24 194.46 cm /Im1 Do Q q 0.96 0 0 15.36 373.2 194.46 cm /Im1 Do Q q 0.96 0 0 15.36 374.16 194.46 cm /Im1 Do Q q 0.96 0 0 15.36 375.12 194.46 cm /Im1 Do Q q 0.96 0 0 15.36 376.08 194.46 cm /Im1 Do Q q 0.96 0 0 15.36 377.04 194.46 cm /Im1 Do Q q 0.96 0 0 15.36 378 194.46 cm /Im1 Do Q q 0.96 0 0 15.36 378.96 194.46 cm /Im1 Do Q q 0.96 0 0 15.36 379.92 194.46 cm /Im1 Do Q q 0.96 0 0 15.36 380.88 194.46 cm /Im1 Do Q q 0.96 0 0 15.36 381.84 194.46 cm /Im1 Do Q q 0.96 0 0 15.36 382.8 194.46 cm /Im1 Do Q q 0.96 0 0 15.36 383.76 194.46 cm /Im1 Do Q q 0.96 0 0 15.36 384.72 194.46 cm /Im1 Do Q q 0.96 0 0 15.36 385.68 194.46 cm /Im1 Do Q q 0.96 0 0 15.36 372.24 179.1 cm /Im1 Do Q q 0.96 0 0 15.36 373.2 179.1 cm /Im1 Do Q q 0.96 0 0 15.36 374.16 179.1 cm /Im1 Do Q q 0.96 0 0 15.36 375.12 179.1 cm /Im1 Do Q q 0.96 0 0 15.36 376.08 179.1 cm /Im1 Do Q q 0.96 0 0 15.36 377.04 179.1 cm /Im1 Do Q q 0.96 0 0 15.36 378 179.1 cm /Im1 Do Q q 0.96 0 0 15.36 378.96 179.1 cm /Im1 Do Q q 0.96 0 0 15.36 379.92 179.1 cm /Im1 Do Q q 0.96 0 0 15.36 380.88 179.1 cm /Im1 Do Q q 0.96 0 0 15.36 381.84 179.1 cm /Im1 Do Q q 0.96 0 0 15.36 382.8 179.1 cm /Im1 Do Q q 0.96 0 0 15.36 383.76 179.1 cm /Im1 Do Q q 0.96 0 0 15.36 384.72 179.1 cm /Im1 Do Q q 0.96 0 0 15.36 385.68 179.1 cm /Im1 Do Q q 0.96 0 0 15.36 372.24 163.74 cm /Im1 Do Q q 0.96 0 0 15.36 373.2 163.74 cm /Im1 Do Q q 0.96 0 0 15.36 374.16 163.74 cm /Im1 Do Q q 0.96 0 0 15.36 375.12 163.74 cm /Im1 Do Q q 0.96 0 0 15.36 376.08 163.74 cm /Im1 Do Q q 0.96 0 0 15.36 377.04 163.74 cm /Im1 Do Q q 0.96 0 0 15.36 378 163.74 cm /Im1 Do Q q 0.96 0 0 15.36 378.96 163.74 cm /Im1 Do Q q 0.96 0 0 15.36 379.92 163.74 cm /Im1 Do Q q 0.96 0 0 15.36 380.88 163.74 cm /Im1 Do Q q 0.96 0 0 15.36 381.84 163.74 cm /Im1 Do Q q 0.96 0 0 15.36 382.8 163.74 cm /Im1 Do Q q 0.96 0 0 15.36 383.76 163.74 cm /Im1 Do Q q 0.96 0 0 15.36 384.72 163.74 cm /Im1 Do Q q 0.96 0 0 15.36 385.68 163.74 cm /Im1 Do Q q 0.96 0 0 1.92 372.24 161.82 cm /Im9 Do Q q 0.96 0 0 1.92 373.2 161.82 cm /Im9 Do Q q 0.96 0 0 1.92 374.16 161.82 cm /Im9 Do Q q 0.96 0 0 1.92 375.12 161.82 cm /Im9 Do Q q 0.96 0 0 1.92 376.08 161.82 cm /Im9 Do Q q 0.96 0 0 1.92 377.04 161.82 cm /Im9 Do Q q 0.96 0 0 1.92 378 161.82 cm /Im9 Do Q q 0.96 0 0 1.92 378.96 161.82 cm /Im9 Do Q q 0.96 0 0 1.92 379.92 161.82 cm /Im9 Do Q q 0.96 0 0 1.92 380.88 161.82 cm /Im9 Do Q q 0.96 0 0 1.92 381.84 161.82 cm /Im9 Do Q q 0.96 0 0 1.92 382.8 161.82 cm /Im9 Do Q q 0.96 0 0 1.92 383.76 161.82 cm /Im9 Do Q q 0.96 0 0 1.92 384.72 161.82 cm /Im9 Do Q q 0.96 0 0 1.92 385.68 161.82 cm /Im9 Do Q Q 0 G 1 J 0 j 0.25 w 10 M []0 d 1 i 372.25 209.25 14.375 -46.75 re S q 314.75 297 14.375 -134.5 re W* n q 0.96 0 0 15.36 314.64 281.82 cm /Im2 Do Q q 0.96 0 0 15.36 315.6 281.82 cm /Im2 Do Q q 0.96 0 0 15.36 316.56 281.82 cm /Im2 Do Q q 0.96 0 0 15.36 317.52 281.82 cm /Im2 Do Q q 0.96 0 0 15.36 318.48 281.82 cm /Im2 Do Q q 0.96 0 0 15.36 319.44 281.82 cm /Im2 Do Q q 0.96 0 0 15.36 320.4 281.82 cm /Im2 Do Q q 0.96 0 0 15.36 321.36 281.82 cm /Im2 Do Q q 0.96 0 0 15.36 322.32 281.82 cm /Im2 Do Q q 0.96 0 0 15.36 323.28 281.82 cm /Im2 Do Q q 0.96 0 0 15.36 324.24 281.82 cm /Im2 Do Q q 0.96 0 0 15.36 325.2 281.82 cm /Im2 Do Q q 0.96 0 0 15.36 326.16 281.82 cm /Im2 Do Q q 0.96 0 0 15.36 327.12 281.82 cm /Im2 Do Q q 0.96 0 0 15.36 328.08 281.82 cm /Im2 Do Q q 0.72 0 0 15.36 329.04 281.82 cm /Im7 Do Q q 0.96 0 0 15.36 314.64 266.46 cm /Im2 Do Q q 0.96 0 0 15.36 315.6 266.46 cm /Im2 Do Q q 0.96 0 0 15.36 316.56 266.46 cm /Im2 Do Q q 0.96 0 0 15.36 317.52 266.46 cm /Im2 Do Q q 0.96 0 0 15.36 318.48 266.46 cm /Im2 Do Q q 0.96 0 0 15.36 319.44 266.46 cm /Im2 Do Q q 0.96 0 0 15.36 320.4 266.46 cm /Im2 Do Q q 0.96 0 0 15.36 321.36 266.46 cm /Im2 Do Q q 0.96 0 0 15.36 322.32 266.46 cm /Im2 Do Q q 0.96 0 0 15.36 323.28 266.46 cm /Im2 Do Q q 0.96 0 0 15.36 324.24 266.46 cm /Im2 Do Q q 0.96 0 0 15.36 325.2 266.46 cm /Im2 Do Q q 0.96 0 0 15.36 326.16 266.46 cm /Im2 Do Q q 0.96 0 0 15.36 327.12 266.46 cm /Im2 Do Q q 0.96 0 0 15.36 328.08 266.46 cm /Im2 Do Q q 0.72 0 0 15.36 329.04 266.46 cm /Im7 Do Q q 0.96 0 0 15.36 314.64 251.1 cm /Im2 Do Q q 0.96 0 0 15.36 315.6 251.1 cm /Im2 Do Q q 0.96 0 0 15.36 316.56 251.1 cm /Im2 Do Q q 0.96 0 0 15.36 317.52 251.1 cm /Im2 Do Q q 0.96 0 0 15.36 318.48 251.1 cm /Im2 Do Q q 0.96 0 0 15.36 319.44 251.1 cm /Im2 Do Q q 0.96 0 0 15.36 320.4 251.1 cm /Im2 Do Q q 0.96 0 0 15.36 321.36 251.1 cm /Im2 Do Q q 0.96 0 0 15.36 322.32 251.1 cm /Im2 Do Q q 0.96 0 0 15.36 323.28 251.1 cm /Im2 Do Q q 0.96 0 0 15.36 324.24 251.1 cm /Im2 Do Q q 0.96 0 0 15.36 325.2 251.1 cm /Im2 Do Q q 0.96 0 0 15.36 326.16 251.1 cm /Im2 Do Q q 0.96 0 0 15.36 327.12 251.1 cm /Im2 Do Q q 0.96 0 0 15.36 328.08 251.1 cm /Im2 Do Q q 0.72 0 0 15.36 329.04 251.1 cm /Im7 Do Q q 0.96 0 0 15.36 314.64 235.74 cm /Im2 Do Q q 0.96 0 0 15.36 315.6 235.74 cm /Im2 Do Q q 0.96 0 0 15.36 316.56 235.74 cm /Im2 Do Q q 0.96 0 0 15.36 317.52 235.74 cm /Im2 Do Q q 0.96 0 0 15.36 318.48 235.74 cm /Im2 Do Q q 0.96 0 0 15.36 319.44 235.74 cm /Im2 Do Q q 0.96 0 0 15.36 320.4 235.74 cm /Im2 Do Q q 0.96 0 0 15.36 321.36 235.74 cm /Im2 Do Q q 0.96 0 0 15.36 322.32 235.74 cm /Im2 Do Q q 0.96 0 0 15.36 323.28 235.74 cm /Im2 Do Q q 0.96 0 0 15.36 324.24 235.74 cm /Im2 Do Q q 0.96 0 0 15.36 325.2 235.74 cm /Im2 Do Q q 0.96 0 0 15.36 326.16 235.74 cm /Im2 Do Q q 0.96 0 0 15.36 327.12 235.74 cm /Im2 Do Q q 0.96 0 0 15.36 328.08 235.74 cm /Im2 Do Q q 0.72 0 0 15.36 329.04 235.74 cm /Im7 Do Q q 0.96 0 0 15.36 314.64 220.38 cm /Im2 Do Q q 0.96 0 0 15.36 315.6 220.38 cm /Im2 Do Q q 0.96 0 0 15.36 316.56 220.38 cm /Im2 Do Q q 0.96 0 0 15.36 317.52 220.38 cm /Im2 Do Q q 0.96 0 0 15.36 318.48 220.38 cm /Im2 Do Q q 0.96 0 0 15.36 319.44 220.38 cm /Im2 Do Q q 0.96 0 0 15.36 320.4 220.38 cm /Im2 Do Q q 0.96 0 0 15.36 321.36 220.38 cm /Im2 Do Q q 0.96 0 0 15.36 322.32 220.38 cm /Im2 Do Q q 0.96 0 0 15.36 323.28 220.38 cm /Im2 Do Q q 0.96 0 0 15.36 324.24 220.38 cm /Im2 Do Q q 0.96 0 0 15.36 325.2 220.38 cm /Im2 Do Q q 0.96 0 0 15.36 326.16 220.38 cm /Im2 Do Q q 0.96 0 0 15.36 327.12 220.38 cm /Im2 Do Q q 0.96 0 0 15.36 328.08 220.38 cm /Im2 Do Q q 0.72 0 0 15.36 329.04 220.38 cm /Im7 Do Q q 0.96 0 0 15.36 314.64 205.02 cm /Im2 Do Q q 0.96 0 0 15.36 315.6 205.02 cm /Im2 Do Q q 0.96 0 0 15.36 316.56 205.02 cm /Im2 Do Q q 0.96 0 0 15.36 317.52 205.02 cm /Im2 Do Q q 0.96 0 0 15.36 318.48 205.02 cm /Im2 Do Q q 0.96 0 0 15.36 319.44 205.02 cm /Im2 Do Q q 0.96 0 0 15.36 320.4 205.02 cm /Im2 Do Q q 0.96 0 0 15.36 321.36 205.02 cm /Im2 Do Q q 0.96 0 0 15.36 322.32 205.02 cm /Im2 Do Q q 0.96 0 0 15.36 323.28 205.02 cm /Im2 Do Q q 0.96 0 0 15.36 324.24 205.02 cm /Im2 Do Q q 0.96 0 0 15.36 325.2 205.02 cm /Im2 Do Q q 0.96 0 0 15.36 326.16 205.02 cm /Im2 Do Q q 0.96 0 0 15.36 327.12 205.02 cm /Im2 Do Q q 0.96 0 0 15.36 328.08 205.02 cm /Im2 Do Q q 0.72 0 0 15.36 329.04 205.02 cm /Im7 Do Q q 0.96 0 0 15.36 314.64 189.66 cm /Im2 Do Q q 0.96 0 0 15.36 315.6 189.66 cm /Im2 Do Q q 0.96 0 0 15.36 316.56 189.66 cm /Im2 Do Q q 0.96 0 0 15.36 317.52 189.66 cm /Im2 Do Q q 0.96 0 0 15.36 318.48 189.66 cm /Im2 Do Q q 0.96 0 0 15.36 319.44 189.66 cm /Im2 Do Q q 0.96 0 0 15.36 320.4 189.66 cm /Im2 Do Q q 0.96 0 0 15.36 321.36 189.66 cm /Im2 Do Q q 0.96 0 0 15.36 322.32 189.66 cm /Im2 Do Q q 0.96 0 0 15.36 323.28 189.66 cm /Im2 Do Q q 0.96 0 0 15.36 324.24 189.66 cm /Im2 Do Q q 0.96 0 0 15.36 325.2 189.66 cm /Im2 Do Q q 0.96 0 0 15.36 326.16 189.66 cm /Im2 Do Q q 0.96 0 0 15.36 327.12 189.66 cm /Im2 Do Q q 0.96 0 0 15.36 328.08 189.66 cm /Im2 Do Q q 0.72 0 0 15.36 329.04 189.66 cm /Im7 Do Q q 0.96 0 0 15.36 314.64 174.3 cm /Im2 Do Q q 0.96 0 0 15.36 315.6 174.3 cm /Im2 Do Q q 0.96 0 0 15.36 316.56 174.3 cm /Im2 Do Q q 0.96 0 0 15.36 317.52 174.3 cm /Im2 Do Q q 0.96 0 0 15.36 318.48 174.3 cm /Im2 Do Q q 0.96 0 0 15.36 319.44 174.3 cm /Im2 Do Q q 0.96 0 0 15.36 320.4 174.3 cm /Im2 Do Q q 0.96 0 0 15.36 321.36 174.3 cm /Im2 Do Q q 0.96 0 0 15.36 322.32 174.3 cm /Im2 Do Q q 0.96 0 0 15.36 323.28 174.3 cm /Im2 Do Q q 0.96 0 0 15.36 324.24 174.3 cm /Im2 Do Q q 0.96 0 0 15.36 325.2 174.3 cm /Im2 Do Q q 0.96 0 0 15.36 326.16 174.3 cm /Im2 Do Q q 0.96 0 0 15.36 327.12 174.3 cm /Im2 Do Q q 0.96 0 0 15.36 328.08 174.3 cm /Im2 Do Q q 0.72 0 0 15.36 329.04 174.3 cm /Im7 Do Q q 0.96 0 0 12.48 314.64 161.82 cm /Im10 Do Q q 0.96 0 0 12.48 315.6 161.82 cm /Im10 Do Q q 0.96 0 0 12.48 316.56 161.82 cm /Im10 Do Q q 0.96 0 0 12.48 317.52 161.82 cm /Im10 Do Q q 0.96 0 0 12.48 318.48 161.82 cm /Im10 Do Q q 0.96 0 0 12.48 319.44 161.82 cm /Im10 Do Q q 0.96 0 0 12.48 320.4 161.82 cm /Im10 Do Q q 0.96 0 0 12.48 321.36 161.82 cm /Im10 Do Q q 0.96 0 0 12.48 322.32 161.82 cm /Im10 Do Q q 0.96 0 0 12.48 323.28 161.82 cm /Im10 Do Q q 0.96 0 0 12.48 324.24 161.82 cm /Im10 Do Q q 0.96 0 0 12.48 325.2 161.82 cm /Im10 Do Q q 0.96 0 0 12.48 326.16 161.82 cm /Im10 Do Q q 0.96 0 0 12.48 327.12 161.82 cm /Im10 Do Q q 0.96 0 0 12.48 328.08 161.82 cm /Im10 Do Q q 0.72 0 0 12.48 329.04 161.82 cm /Im11 Do Q Q 314.75 297 14.375 -134.5 re S q 257.375 298.75 14.375 -136.25 re W* n q 0.96 0 0 15.36 259.92 283.7401 cm /Im12 Do Q q 0.96 0 0 15.36 260.88 283.7401 cm /Im12 Do Q q 0.96 0 0 15.36 261.84 283.7401 cm /Im12 Do Q q 0.96 0 0 15.36 262.8 283.7401 cm /Im12 Do Q q 0.96 0 0 15.36 263.76 283.7401 cm /Im12 Do Q q 0.96 0 0 15.36 264.72 283.7401 cm /Im12 Do Q q 0.96 0 0 15.36 265.68 283.7401 cm /Im12 Do Q q 0.96 0 0 15.36 266.64 283.7401 cm /Im12 Do Q q 0.96 0 0 15.36 267.6 283.7401 cm /Im12 Do Q q 0.96 0 0 15.36 268.56 283.7401 cm /Im12 Do Q q 0.96 0 0 15.36 269.52 283.7401 cm /Im12 Do Q q 0.96 0 0 15.36 270.48 283.7401 cm /Im12 Do Q q 0.96 0 0 15.36 271.44 283.7401 cm /Im12 Do Q q 0.96 0 0 15.36 259.92 268.38 cm /Im12 Do Q q 0.96 0 0 15.36 260.88 268.38 cm /Im12 Do Q q 0.96 0 0 15.36 261.84 268.38 cm /Im12 Do Q q 0.96 0 0 15.36 262.8 268.38 cm /Im12 Do Q q 0.96 0 0 15.36 263.76 268.38 cm /Im12 Do Q q 0.96 0 0 15.36 264.72 268.38 cm /Im12 Do Q q 0.96 0 0 15.36 265.68 268.38 cm /Im12 Do Q q 0.96 0 0 15.36 266.64 268.38 cm /Im12 Do Q q 0.96 0 0 15.36 267.6 268.38 cm /Im12 Do Q q 0.96 0 0 15.36 268.56 268.38 cm /Im12 Do Q q 0.96 0 0 15.36 269.52 268.38 cm /Im12 Do Q q 0.96 0 0 15.36 270.48 268.38 cm /Im12 Do Q q 0.96 0 0 15.36 271.44 268.38 cm /Im12 Do Q q 0.96 0 0 15.36 259.92 253.02 cm /Im12 Do Q q 0.96 0 0 15.36 260.88 253.02 cm /Im12 Do Q q 0.96 0 0 15.36 261.84 253.02 cm /Im12 Do Q q 0.96 0 0 15.36 262.8 253.02 cm /Im12 Do Q q 0.96 0 0 15.36 263.76 253.02 cm /Im12 Do Q q 0.96 0 0 15.36 264.72 253.02 cm /Im12 Do Q q 0.96 0 0 15.36 265.68 253.02 cm /Im12 Do Q q 0.96 0 0 15.36 266.64 253.02 cm /Im12 Do Q q 0.96 0 0 15.36 267.6 253.02 cm /Im12 Do Q q 0.96 0 0 15.36 268.56 253.02 cm /Im12 Do Q q 0.96 0 0 15.36 269.52 253.02 cm /Im12 Do Q q 0.96 0 0 15.36 270.48 253.02 cm /Im12 Do Q q 0.96 0 0 15.36 271.44 253.02 cm /Im12 Do Q q 0.96 0 0 15.36 259.92 237.66 cm /Im12 Do Q q 0.96 0 0 15.36 260.88 237.66 cm /Im12 Do Q q 0.96 0 0 15.36 261.84 237.66 cm /Im12 Do Q q 0.96 0 0 15.36 262.8 237.66 cm /Im12 Do Q q 0.96 0 0 15.36 263.76 237.66 cm /Im12 Do Q q 0.96 0 0 15.36 264.72 237.66 cm /Im12 Do Q q 0.96 0 0 15.36 265.68 237.66 cm /Im12 Do Q q 0.96 0 0 15.36 266.64 237.66 cm /Im12 Do Q q 0.96 0 0 15.36 267.6 237.66 cm /Im12 Do Q q 0.96 0 0 15.36 268.56 237.66 cm /Im12 Do Q q 0.96 0 0 15.36 269.52 237.66 cm /Im12 Do Q q 0.96 0 0 15.36 270.48 237.66 cm /Im12 Do Q q 0.96 0 0 15.36 271.44 237.66 cm /Im12 Do Q q 0.96 0 0 15.36 259.92 222.3 cm /Im12 Do Q q 0.96 0 0 15.36 260.88 222.3 cm /Im12 Do Q q 0.96 0 0 15.36 261.84 222.3 cm /Im12 Do Q q 0.96 0 0 15.36 262.8 222.3 cm /Im12 Do Q q 0.96 0 0 15.36 263.76 222.3 cm /Im12 Do Q q 0.96 0 0 15.36 264.72 222.3 cm /Im12 Do Q q 0.96 0 0 15.36 265.68 222.3 cm /Im12 Do Q q 0.96 0 0 15.36 266.64 222.3 cm /Im12 Do Q q 0.96 0 0 15.36 267.6 222.3 cm /Im12 Do Q q 0.96 0 0 15.36 268.56 222.3 cm /Im12 Do Q q 0.96 0 0 15.36 269.52 222.3 cm /Im12 Do Q q 0.96 0 0 15.36 270.48 222.3 cm /Im12 Do Q q 0.96 0 0 15.36 271.44 222.3 cm /Im12 Do Q q 0.96 0 0 15.36 259.92 206.94 cm /Im12 Do Q q 0.96 0 0 15.36 260.88 206.94 cm /Im12 Do Q q 0.96 0 0 15.36 261.84 206.94 cm /Im12 Do Q q 0.96 0 0 15.36 262.8 206.94 cm /Im12 Do Q q 0.96 0 0 15.36 263.76 206.94 cm /Im12 Do Q q 0.96 0 0 15.36 264.72 206.94 cm /Im12 Do Q q 0.96 0 0 15.36 265.68 206.94 cm /Im12 Do Q q 0.96 0 0 15.36 266.64 206.94 cm /Im12 Do Q q 0.96 0 0 15.36 267.6 206.94 cm /Im12 Do Q q 0.96 0 0 15.36 268.56 206.94 cm /Im12 Do Q q 0.96 0 0 15.36 269.52 206.94 cm /Im12 Do Q q 0.96 0 0 15.36 270.48 206.94 cm /Im12 Do Q q 0.96 0 0 15.36 271.44 206.94 cm /Im12 Do Q q 0.96 0 0 15.36 259.92 191.58 cm /Im12 Do Q q 0.96 0 0 15.36 260.88 191.58 cm /Im12 Do Q q 0.96 0 0 15.36 261.84 191.58 cm /Im12 Do Q q 0.96 0 0 15.36 262.8 191.58 cm /Im12 Do Q q 0.96 0 0 15.36 263.76 191.58 cm /Im12 Do Q q 0.96 0 0 15.36 264.72 191.58 cm /Im12 Do Q q 0.96 0 0 15.36 265.68 191.58 cm /Im12 Do Q q 0.96 0 0 15.36 266.64 191.58 cm /Im12 Do Q q 0.96 0 0 15.36 267.6 191.58 cm /Im12 Do Q q 0.96 0 0 15.36 268.56 191.58 cm /Im12 Do Q q 0.96 0 0 15.36 269.52 191.58 cm /Im12 Do Q q 0.96 0 0 15.36 270.48 191.58 cm /Im12 Do Q q 0.96 0 0 15.36 271.44 191.58 cm /Im12 Do Q q 0.96 0 0 15.36 259.92 176.22 cm /Im12 Do Q q 0.96 0 0 15.36 260.88 176.22 cm /Im12 Do Q q 0.96 0 0 15.36 261.84 176.22 cm /Im12 Do Q q 0.96 0 0 15.36 262.8 176.22 cm /Im12 Do Q q 0.96 0 0 15.36 263.76 176.22 cm /Im12 Do Q q 0.96 0 0 15.36 264.72 176.22 cm /Im12 Do Q q 0.96 0 0 15.36 265.68 176.22 cm /Im12 Do Q q 0.96 0 0 15.36 266.64 176.22 cm /Im12 Do Q q 0.96 0 0 15.36 267.6 176.22 cm /Im12 Do Q q 0.96 0 0 15.36 268.56 176.22 cm /Im12 Do Q q 0.96 0 0 15.36 269.52 176.22 cm /Im12 Do Q q 0.96 0 0 15.36 270.48 176.22 cm /Im12 Do Q q 0.96 0 0 15.36 271.44 176.22 cm /Im12 Do Q q 0.96 0 0 15.36 259.92 160.86 cm /Im12 Do Q q 0.96 0 0 15.36 260.88 160.86 cm /Im12 Do Q q 0.96 0 0 15.36 261.84 160.86 cm /Im12 Do Q q 0.96 0 0 15.36 262.8 160.86 cm /Im12 Do Q q 0.96 0 0 15.36 263.76 160.86 cm /Im12 Do Q q 0.96 0 0 15.36 264.72 160.86 cm /Im12 Do Q q 0.96 0 0 15.36 265.68 160.86 cm /Im12 Do Q q 0.96 0 0 15.36 266.64 160.86 cm /Im12 Do Q q 0.96 0 0 15.36 267.6 160.86 cm /Im12 Do Q q 0.96 0 0 15.36 268.56 160.86 cm /Im12 Do Q q 0.96 0 0 15.36 269.52 160.86 cm /Im12 Do Q q 0.96 0 0 15.36 270.48 160.86 cm /Im12 Do Q q 0.96 0 0 15.36 271.44 160.86 cm /Im12 Do Q Q 257.375 298.75 14.375 -136.25 re S BT /TT2 1 Tf 7 0 0 7 364 149.375 Tm (Read-only)Tj -26.5357 24.5357 TD [(of)-256.3(Spinlock)-258(Throughput)]TJ 0.9643 1.0179 TD [(Throughput)-239.7(as)-253.7(a)-250(%)]TJ 11 0 0 11 208.75 186.625 Tm (20)Tj 0 2.6023 TD (40)Tj 0 2.6136 TD (60)Tj 0 2.6023 TD (80)Tj -0.25 2.6136 TD (100)Tj 7 0 0 7 255.125 149.375 Tm [(1)-250(Disk)-5322.5(2)-250(Disks)]TJ ET 1.25 w 228.625 162.5 m 415.375 162.5 l S 0.25 w [1 1.5 ]0 d 228.625 191.25 m 415.375 191.25 l 228.625 219.875 m 415.375 219.875 l 228.625 248.625 m 415.375 248.625 l 228.625 277.25 m 415.375 277.25 l 228.625 306 m 415.375 306 l S BT 8 0 0 8 69.375 122 Tm [(Figure)-261.2(5:)-260.7(Kernel)-259.8(Overhead)-262.7(for)-254.4(System)-257.3(Call)-269(Synchronization.)]TJ /TT4 1 Tf 26.5469 0 TD [(The)-257.8(performance)-229(of)-260.7(the)-262.7(kernel)-251.5(call)-259.8(synchronization)-253.4(is)-270.5(expressed)-244.6(as)-245.1(a)-243.7(percentage)]TJ -26.5469 -1.4063 TD [(of)-260.7(the)-262.7(spinlock)-267.6(synchronization)-253.4(performance.)-479(In)-260.7(disk)-270.5(bound)-265.6(cases)-249.5(\(1)-260.7(Disk)-267.1(and)-259.3(2)-265.6(Disks\),)-263.7(we)-255.9(see)-254.4(that)-266.1(4-6%)-255.9(of)-260.7(the)-262.7(performance)-229(is)-270.5(lost)-258.3(due)-243.7(to)-253.4(kernel)]TJ T* [(calls)-245.6(while)-247.1(in)-253.4(the)-247.1(CPU)-257.8(bound)-250(case,)-232.4(we)-240.2(have)-237.3(lost)-258.3(67%)-245.1(of)-245.1(the)-247.1(performance)-213.4(due)-243.7(to)-253.4(kernel)-235.8(calls.)]TJ ET endstream endobj 41 0 obj << /ProcSet [/PDF /Text /ImageB ] /Font << /TT2 4 0 R /TT4 5 0 R /TT7 7 0 R /T1 8 0 R >> /XObject << /Im1 32 0 R /Im2 33 0 R /Im7 42 0 R /Im9 43 0 R /Im10 44 0 R /Im11 45 0 R /Im12 46 0 R >> /ExtGState << /GS1 9 0 R >> >> endobj 48 0 obj << /Length 9326 >> stream BT /TT4 1 Tf 10 0 0 10 69.375 713.25 Tm 0 g /GS1 gs 0 Tc 0 Tw [(access)-271.3(methods,)-248.8(we)-259(now)-252.8(have)-262.3(an)-256.2(integrated)-264.5(open)-256.1(call)-256.6(with)-247.2(the)-253.3(following)-248.8(calling)-253.8(conventions:)]TJ /TT9 1 Tf 2 -1.5375 TD [(DB)-599.8(*dbopen)-599.3(\(const)-599.4(char)-599.6(*file,)-599.4(int)-599.7(flags,)-599.4(int)-599.7(mode,)-599.5(DBTYPE)-599.4(type,)]TJ 7.2 -1.125 TD [(int)-599.7(dbflags,)-599.2(const)-599.5(void)-599.6(*openinfo\))]TJ /TT4 1 Tf -9.2 -1.5375 TD (where)Tj /TT10 1 Tf 2.7375 0 TD (Þ)Tj /TT6 1 Tf 0.5 0 TD (le)Tj /TT4 1 Tf 1 0 TD [(is)-270.5(the)-278.3(name)-284.5(of)-279.5(the)]TJ /TT7 1 Tf 7.5 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-272.2(being)-278.3(opened,)]TJ /TT10 1 Tf 6.9188 0 TD (ß)Tj /TT6 1 Tf 0.5 0 TD (ags)Tj /TT4 1 Tf 1.6625 0 TD (and)Tj /TT6 1 Tf 1.7125 0 TD (mode)Tj /TT4 1 Tf 2.4375 0 TD [(are)-279.3(the)-265.8(standard)-274.8(arguments)-272(to)]TJ /TT2 1 Tf 12.125 0 TD (open)Tj /TT4 1 Tf 2.05 0 TD (\(2\),)Tj /TT6 1 Tf 1.6875 0 TD (type)Tj /TT4 1 Tf 1.9375 0 TD [(is)-258(one)-268.7(of)]TJ -43.325 -1.125 TD [(the)-340.8(access)-358.8(method)-338(types,)]TJ /TT6 1 Tf 10.5125 0 TD (db)Tj /TT10 1 Tf 1 0 TD (ß)Tj /TT6 1 Tf 0.5 0 TD (ags)Tj /TT4 1 Tf 1.725 0 TD [(indicates)-345.8(the)-340.8(mode)-340.8(of)-342(the)-340.8(buffer)-357.1(pool)-322.2(and)-331.2(transaction)-337.8(protection,)-333.3(and)]TJ /TT6 1 Tf 28.575 0 TD (openinfo)Tj /TT4 1 Tf 3.825 0 TD (is)Tj -46.1375 -1.125 TD [(the)-353.3(access)-371.3(method)-350.5(speci)]TJ /TT7 1 Tf 9.9047 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(c)-357.8(information.)-603.8(Currently,)-355(the)-353.3(possible)-347.2(values)-357.8(for)]TJ /TT6 1 Tf 20.4517 0 TD (db)Tj /TT10 1 Tf 1 0 TD (ß)Tj /TT6 1 Tf 0.5 0 TD (ags)Tj /TT4 1 Tf 1.7375 0 TD [(are)-366.8(DB_SHARED)-335.4(and)-343.7(DB_TP)]TJ -34.15 -1.125 TD [(indicating)-251(that)-250.5(buffers)-268(should)-245.5(be)-256.2(kept)-253.3(in)-247.2(a)-256.2(shared)-265.1(buffer)-269.6(pool)-247.2(and)-256.1(that)-250.5(the)]TJ /TT7 1 Tf 29.45 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-247.2(should)-245.5(be)-256.2(transaction)-262.8(protected.)]TJ -27.5061 -1.5375 TD [(The)-257.8(modi)]TJ /TT7 1 Tf 3.8682 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(cations)-243.2(required)-268.5(to)-247.2(add)-256.2(transaction)-262.8(protection)-258.3(to)-247.2(an)-256.2(access)-271.3(method)-250.5(are)-266.8(quite)-250.5(simple)-246(and)-256.2(localized.)]TJ -4.9243 -1.5375 TD [(1.)-250(Replace)]TJ /TT7 1 Tf 4.4875 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD (le)Tj /TT6 1 Tf 0.9688 0 TD (open)Tj /TT4 1 Tf 2.2 0 TD (with)Tj /TT6 1 Tf 2.025 0 TD (buf_open)Tj /TT4 1 Tf 3.725 0 TD (.)Tj -13.9625 -1.125 TD [(2.)-250(Replace)]TJ /TT7 1 Tf 4.4875 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD (le)Tj /TT6 1 Tf 0.9688 0 TD (read)Tj /TT4 1 Tf 2.0875 0 TD (and)Tj /TT6 1 Tf 1.7 0 TD (write)Tj /TT4 1 Tf 2.3 0 TD [(calls)-255(with)-247.2(buffer)-269.6(manager)-270.1(calls)-255(\()]TJ /TT6 1 Tf 12.9625 0 TD (buf_get)Tj /TT4 1 Tf 2.9995 0 TD (,)Tj /TT6 1 Tf 0.5005 0 TD (buf_unpin)Tj /TT4 1 Tf 4.05 0 TD (\).)Tj -32.6125 -1.125 TD [(3.)-250(Precede)-272.9(buffer)-269.6(manager)-270.1(calls)-255(with)-247.2(an)-256.2(appropriate)-271.8(\(read)-271.3(or)-254.5(write\))-262.3(lock)-253.3(call.)]TJ T* [(4.)-250(Before)-266.8(updates,)-257.8(issue)-250(a)-256.2(logging)-244.3(operation.)]TJ T* [(5.)-250(After)-265.1(data)-259.5(have)-262.3(been)-262.3(accessed,)-277.4(release)-274.6(the)-253.3(buffer)-269.6(manager)-270.1(pin.)]TJ T* [(6.)-250(Provide)-251.7(undo/redo)-257.8(code)-262.3(for)-259(each)-268.5(type)-253.3(of)-254.5(log)-247.2(record)-271.3(de)]TJ /TT7 1 Tf 22.7063 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD (ned.)Tj -25.2625 -1.7375 TD [(The)-282.8(following)-273.8(code)-287.3(fragments)-289(show)-276.2(how)-277.8(to)-272.2(transaction)-287.8(protect)-286.1(several)-293.5(updates)-282.8(to)-259.7(a)-268.7(B-tree.)]TJ 7 0 0 7 435.5 537.125 Tm (3)Tj 10 0 0 10 441.625 533.125 Tm [(In)-267(the)-265.8(unprotected)-279.8(case,)]TJ -37.225 -1.125 TD [(an)-268.7(open)-268.7(call)-269.1(is)-258(followed)-270.3(by)-262.5(a)-268.7(read)-279.3(call)-269.1(to)-259.7(obtain)-263(the)-265.8(meta-data)-283.1(for)-271.5(the)-265.8(B-tree.)-526.5(Instead,)-274.8(we)-271.5(issue)-262.5(an)-268.7(open)-268.7(to)-259.7(the)-253.3(buffer)]TJ T* [(manager)-270.1(to)-247.2(obtain)-250.5(a)]TJ /TT7 1 Tf 8.1875 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-247.2(id)-247.2(and)-256.2(a)-256.2(buffer)-269.6(request)-262.3(to)-247.2(obtain)-250.5(the)-253.3(meta-data)-270.6(as)-254.5(shown)-251.2(below.)]TJ /TT9 1 Tf -6.7437 -1.5375 TD [(char)-599.6(*path;)]TJ 0 -1.125 TD [(int)-599.7(fid,)-599.6(flags,)-599.4(len,)-599.6(mode;)]TJ 0 -2.25 TD [(/*)-599.8(Obtain)-599.4(a)-599.9(file)-599.6(id)-599.8(with)-599.6(which)-599.5(to)-599.8(access)-599.4(the)-599.7(buffer)-599.4(pool)-599.6(*/)]TJ 0 -1.125 TD [(fid)-599.7(=)-599.9(buf_open\(path,)-598.6(flags,)-599.4(mode\);)]TJ 0 -2.25 TD [(/*)-599.8(Read)-599.6(the)-599.7(meta)-599.6(data)-599.6(\(page)-599.5(0\))-599.8(for)-599.7(the)-599.7(B-tree)-599.4(*/)]TJ 0 -1.125 TD [(if)-599.8(\(tp_lock\(fid,)-598.7(0,)-599.8(READ_LOCK\)\))]TJ 3.6 -1.125 TD [(return)-599.4(error;)]TJ -3.6 -1.125 TD [(meta_data_ptr)-598.7(=)-599.9(buf_get\(fid,)-598.8(0,)-599.8(BF_PIN,)-599.3(&len\);)]TJ /TT4 1 Tf -2 -1.5375 TD [(The)-432.8(BF_PIN)-415.5(argument)-423.6(to)]TJ /TT6 1 Tf 11.125 0 TD (buf_get)Tj /TT4 1 Tf 3.4125 0 TD [(indicates)-420.8(that)-413(we)-421.5(wish)-410.8(to)-409.7(leave)-428.1(this)-405.2(page)-424.8(pinned)-415.8(in)-409.7(memory)-417.5(so)-410.8(that)-413(it)-406.8(is)-408(not)]TJ -14.5375 -1.125 TD [(swapped)-338.5(out)-322.2(while)-328.3(we)-334(are)-341.8(accessing)-331(it.)-556.8(The)-320.3(last)-311.3(argument)-323.6(to)]TJ /TT6 1 Tf 25.3375 0 TD (buf_get)Tj /TT4 1 Tf 3.3125 0 TD [(returns)-323.1(the)-315.8(number)-320.3(of)-317(bytes)-314.2(on)-312.5(the)-315.8(page)-324.8(that)]TJ -28.65 -1.125 TD [(were)-269.6(valid)-250.5(so)-248.3(that)-250.5(the)-253.3(access)-271.3(method)-250.5(may)-253.3(initialize)-251.5(the)-253.3(page)-262.3(if)-251.7(necessary.)]TJ 2.5 -1.5375 TD [(Next,)-306.2(consider)-312.3(inserting)-300.5(a)-306.2(record)-321.3(on)-300(a)-306.2(particular)-318.9(page)-312.3(of)-304.5(a)-306.2(B-tree.)-551.5(In)-292(the)-290.8(unprotected)-304.8(case,)-304.3(we)-296.5(read)-304.3(the)-290.8(page,)]TJ -2.5 -1.125 TD (call)Tj /TT6 1 Tf 1.725 0 TD (_bt_insertat)Tj /TT4 1 Tf 4.825 0 TD [(,)-275(and)-268.7(write)-270.3(the)-265.8(page.)-524.8(Instead,)-274.8(we)-271.5(lock)-265.8(the)-265.8(page,)-274.8(request)-274.8(the)-265.8(buffer,)-282.1(log)-259.7(the)-265.8(change,)-281(modify)-261.3(the)-265.8(page,)]TJ -6.55 -1.125 TD [(and)-256.2(release)-274.6(the)-253.3(buffer.)]TJ /TT9 1 Tf 2 -1.5375 TD [(int)-599.7(fid,)-599.6(len,)-599.6(pageno;)-1799.3(/*)-599.8(Identifies)-599(the)-599.7(buffer)-599.4(*/)]TJ 0 -1.125 TD [(int)-599.7(index;)-8399.4(/*)-599.8(Location)-599.2(at)-599.8(which)-599.5(to)-599.8(insert)-599.4(the)-599.7(new)-599.7(pair)-599.6(*/)]TJ T* [(DBT)-599.7(*keyp,)-599.4(*datap;)-3599.3(/*)-599.8(Key/Data)-599.2(pair)-599.6(to)-599.8(be)-599.8(inserted)-599.2(*/)]TJ T* [(DATUM)-599.5(*d;)-8999.7(/*)-599.8(Key/data)-599.2(structure)-599.1(to)-599.8(insert)-599.4(*/)]TJ 0 -2.25 TD [(/*)-599.8(Lock)-599.6(and)-599.7(request)-599.3(the)-599.7(buffer)-599.4(*/)]TJ 0 -1.125 TD [(if)-599.8(\(tp_lock\(fid,)-598.7(pageno,)-599.3(WRITE_LOCK\)\))]TJ 3.6 -1.125 TD [(return)-599.4(error;)]TJ -3.6 -1.125 TD [(buffer_ptr)-599(=)-599.9(buf_get\(fid,)-598.8(pageno,)-599.3(BF_PIN,)-599.3(&len\);)]TJ 0 -2.25 TD [(/*)-599.8(Log)-599.7(and)-599.7(perform)-599.3(the)-599.7(update)-599.4(*/)]TJ 0 -1.125 TD [(log_insdel\(BTREE_INSERT,)-597.7(fid,)-599.6(pageno,)-599.3(keyp,)-599.5(datap\);)]TJ T* [(_bt_insertat\(buffer_ptr,)-597.7(d,)-599.8(index\);)]TJ T* (buf_unpin\(buffer_ptr\);)Tj /TT4 1 Tf -2 -1.5375 TD [(Succinctly,)-366.3(the)-353.3(algorithm)-349.3(for)-359(turning)-348.8(unprotected)-367.3(code)-362.3(into)-344.3(protected)-367.3(code)-362.3(is)-345.5(to)-347.2(replace)-376.3(read)-366.8(operations)-359.5(with)]TJ /TT6 1 Tf 45.125 0 TD (lock)Tj /TT4 1 Tf -45.125 -1.125 TD (and)Tj /TT6 1 Tf 1.7 0 TD (buf_get)Tj /TT4 1 Tf 3.25 0 TD [(operations)-259.5(and)-256.2(write)-257.8(operations)-259.5(with)]TJ /TT6 1 Tf 14.8875 0 TD (log)Tj /TT4 1 Tf 1.525 0 TD (and)Tj /TT6 1 Tf 1.7 0 TD (buf_unpin)Tj /TT4 1 Tf 4.3 0 TD (operations.)Tj /T1 1 Tf 8 0 0 8 69.375 109.75 Tm ()Tj /TT4 1 Tf 5 0 0 5 90.875 100 Tm (3)Tj 8 0 0 8 95.75 96.875 Tm [(The)-289.1(following)-298.8(code)-284.2(fragments)-282.7(are)-279.3(examples,)-286.1(but)-300.3(do)-281.3(not)-284.7(de)]TJ /TT7 1 Tf 23.6626 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(ne)-274.9(the)]TJ /TT7 1 Tf 2.7187 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(nal)-284.7(interface.)-502.9(The)]TJ /TT7 1 Tf 7.5845 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(nal)-284.7(interface)-252.9(will)-288.1(be)-274.9(determined)-267.6(after)-262.2(LIBTP)-284.7(has)]TJ -38.9312 -1.125 TD [(been)-237.3(fully)-252(integrated)-236.3(with)-253.4(the)-247.1(most)-258.3(recent)]TJ /TT2 1 Tf 16.875 0 TD (db)Tj /TT4 1 Tf 1.125 0 TD [(\(3\))-240.2(release)-224.6(from)-243.7(the)-247.1(Computer)-250.5(Systems)-259.8(Research)-226.1(Group)-241.7(at)-247.1(University)-247.1(of)-245.1(California,)-242.7(Berkeley.)]TJ ET endstream endobj 49 0 obj << /ProcSet [/PDF /Text ] /Font << /TT2 4 0 R /TT4 5 0 R /TT6 6 0 R /TT7 7 0 R /TT9 50 0 R /TT10 51 0 R /T1 8 0 R >> /ExtGState << /GS1 9 0 R >> >> endobj 53 0 obj << /Length 11086 >> stream BT /TT2 1 Tf 10 0 0 10 69.375 713.25 Tm 0 g /GS1 gs 0 Tc 0 Tw [(5.)-500(Performance)]TJ /TT4 1 Tf 2.5 -1.5375 TD [(In)-292(this)-280.2(section,)-292.5(we)-296.5(present)-299.8(the)-290.8(results)-289.2(of)-279.5(two)-275(very)-285.6(different)-295.1(benchmarks.)-293.5(The)]TJ /TT7 1 Tf 31.1875 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(rst)-268.8(is)-270.5(an)-281.2(online)-275.5(transaction)-287.8(pro-)]TJ -34.2437 -1.125 TD [(cessing)-418.7(benchmark,)-432.6(similar)-410.2(to)-409.7(the)-415.8(standard)-424.8(TPCB,)-399(but)-409.7(has)-417(been)-424.8(adapted)-428.1(to)-409.7(run)-417(in)-409.7(a)-418.7(desktop)-414.2(environment.)-670.8(The)]TJ T* [(second)-260.6(emulates)-258.3(a)-256.2(computer-aided)-275.1(design)-251.7(environment)-258.3(and)-256.1(provides)-256.2(more)-257.8(complex)-256.6(query)-260.6(processing.)]TJ /TT2 1 Tf 0 -2.325 TD [(5.1.)-500(Transaction)-245.5(Processing)-257.8(Benchmark)]TJ /TT4 1 Tf 2.5 -1.5375 TD [(For)-260.8(this)-255.2(section,)-267.5(all)-263(performance)-297.8(numbers)-268.7(shown)-251.2(except)-265.6(for)-259(the)-253.3(commercial)-267.8(database)-270.1(system)-247.2(were)-269.6(obtained)-256.6(on)]TJ -2.5 -1.125 TD [(a)-293.7(DECstation)-271(5000/200)-272.2(with)-272.2(32MBytes)-270.5(of)-279.5(memory)-280(running)-276.7(Ultrix)-273.8(V4.0,)-277.8(accessing)-293.5(a)-281.2(DEC)-275(RZ57)-272.2(1GByte)-276.7(disk)-270.5(drive.)]TJ T* [(The)-507.8(commercial)-517.8(relational)-511.6(database)-520.1(system)-497.2(tests)-484.7(were)-507.1(run)-492(on)-487.5(a)-493.7(comparable)-510.9(machine,)-500.3(a)-493.7(Sparcstation)-494.1(1+)-486(with)]TJ T* [(32MBytes)-333(memory)-342.5(and)-343.7(a)-343.7(1GByte)-339.2(external)-342.3(disk)-320.5(drive.)-582.8(The)-332.8(database,)-345.1(binaries)-334.5(and)-331.2(log)-322.2(resided)-337.3(on)-325(the)-328.3(same)-332.8(device.)]TJ T* [(Reported)-259.5(times)-246(are)-266.8(the)-253.3(means)-257.8(of)]TJ /TT7 1 Tf 13.2 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(ve)-250(tests)-247.2(and)-256.2(have)-262.3(standard)-262.3(deviations)-252.1(within)-244.3(two)-250(percent)-270.1(of)-254.5(the)-253.3(mean.)]TJ -11.2561 -1.5375 TD [(The)-320.3(test)-311.3(database)-332.6(was)-319.8(con)]TJ /TT7 1 Tf 10.6688 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(gured)-323.1(according)-332.6(to)-309.7(the)-315.8(TPCB)-299(scaling)-317.5(rules)-318.6(for)-321.5(a)-318.7(1)0(0)-312.5(transaction)-325.3(per)-323.1(second)-323.1(\(TPS\))]TJ -13.725 -1.125 TD [(system)-497.2(with)-497.2(1,000,000)-500(account)-515.6(records,)-519.6(100)-500(teller)-508.3(records,)-507.1(and)-493.7(10)-487.5(branch)-504.3(records.)-757.1(Where)-510.4(TPS)-476.9(numbers)-493.7(are)]TJ T* [(reported,)-293.5(we)-284(are)-291.8(running)-276.7(a)-281.2(modi)]TJ /TT7 1 Tf 13.0057 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(ed)-269.3(version)-281.2(of)-279.5(the)-265.8(industry)-259.7(standard)-274.8(transaction)-275.3(processing)-273.1(benchmark,)-282.6(TPCB.)-499(The)]TJ -13.5618 -1.125 TD [(TPCB)-311.5(benchmark)-345.1(simulates)-322.7(a)-331.2(withdrawal)-339(performed)-347.9(by)-325(a)-331.2(hypothetical)-332.1(teller)-333.3(at)-328.3(a)-331.2(hypothetical)-332.1(bank.)-581.2(The)-320.3(database)]TJ T* [(consists)-283(of)-292(relations)-294.1(\()]TJ /TT7 1 Tf 8.6455 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(les\))-292(for)-296.5(accounts,)-301.5(branches,)-308.8(tellers,)-294.1(and)-293.6(history.)-534.7(For)-285.8(each)-306(transaction,)-300.3(the)-290.8(account,)-290.6(teller,)-283.3(and)]TJ -9.2017 -1.125 TD [(branch)-279.3(balances)-282.6(must)-255.2(be)-268.7(updated)-272(to)-259.7(re)]TJ /TT7 1 Tf 15.3894 0 TD (ß)Tj /TT4 1 Tf 0.5562 0 TD [(ect)-276.5(the)-265.8(withdrawal)-276.5(and)-268.7(a)-256.2(history)-247.2(record)-271.3(is)-245.5(written)-255(which)-256.1(contains)-255(the)-253.3(account)]TJ -15.9455 -1.125 TD [(id,)-247.2(branch)-266.8(id,)-247.2(teller)-258.3(id,)-247.2(and)-256.2(the)-253.3(amount)-250.5(of)-254.5(the)-253.3(withdrawal)-264([TPCB90].)]TJ 2.5 -1.5375 TD [(Our)-432.3(implementation)-423.6(of)-429.5(the)-428.3(benchmark)-445.1(differs)-427.6(from)-418.7(the)-415.8(speci)]TJ /TT7 1 Tf 25.5797 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(cation)-420.8(in)-409.7(several)-431(aspects.)-674.8(The)-420.3(speci)]TJ /TT7 1 Tf 15.1563 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD (cation)Tj -44.3483 -1.125 TD [(requires)-341.8(that)-313(the)-315.8(database)-332.6(keep)-324.8(redundant)-326.5(logs)-308(on)-312.5(different)-332.6(devices,)-326.5(but)-309.7(we)-321.5(use)-317(a)-318.7(single)-311.3(log.)-559.7(Furthermore,)-326.5(all)-313(tests)]TJ T* [(were)-294.6(run)-279.5(on)-275(a)-281.2(single,)-273.8(centralized)-301.8(system)-272.2(so)-273.3(there)-289(is)-270.5(no)-275(notion)-256.8(of)-267(remote)-273.6(accesses.)-538.3(Finally,)-254(we)-271.5(calculated)-284.8(throughput)]TJ T* [(by)-337.5(dividing)-329(the)-340.8(total)-335.2(elapsed)-351.5(time)-335.2(by)-337.5(the)-340.8(number)-345.3(of)-342(transactions)-348.6(processed)-357.1(rather)-356(than)-340.8(by)-337.5(computing)-335.2(the)-328.3(response)]TJ T* [(time)-247.7(for)-259(each)-268.5(transaction.)]TJ 2.5 -1.5375 TD [(The)-407.8(performance)-435.3(comparisons)-407.8(focus)-396.5(on)-387.5(traditional)-390.1(Unix)-387.5(techniques)-398.6(\(unprotected,)-409.3(using)]TJ /TT11 1 Tf 36.6875 0 TD (ß)Tj /TT2 1 Tf 0.5562 0 TD (ock)Tj /TT4 1 Tf 1.4938 0 TD [(\(2\))-396.5(and)-393.7(using)]TJ /TT2 1 Tf -41.2375 -1.125 TD (fsync)Tj /TT4 1 Tf 2.225 0 TD [(\(2\)\))-388.5(and)-381.2(a)-381.2(commercial)-380.3(relational)-374.1(database)-382.6(system.)-609.7(Well-behaved)-392.1(applications)-368(using)]TJ /TT11 1 Tf 34.975 0 TD (ß)Tj /TT2 1 Tf 0.5562 0 TD (ock)Tj /TT4 1 Tf 1.4938 0 TD [(\(2\))-371.5(are)-379.3(guaranteed)]TJ -39.25 -1.125 TD [(that)-363(concurrent)-387.1(processes’)-385(updates)-370.3(do)-362.5(not)-359.7(interact)-377(with)-359.7(one)-368.7(another,)-376.5(but)-359.7(no)-350(guarantees)-374.6(about)-353.3(atomicity)-348.1(are)-366.8(made.)]TJ T* [(That)-367.5(is,)-358(if)-364.2(the)-365.8(system)-359.7(crashes)-382.1(in)-359.7(mid-transaction,)-374.1(only)-359.7(parts)-368.7(of)-354.5(that)-350.5(transaction)-362.8(will)-344.3(be)-356.2(re)]TJ /TT7 1 Tf 36.7519 0 TD (ß)Tj /TT4 1 Tf 0.5562 0 TD [(ected)-370.1(in)]TJ 3.6045 0 TD 0.0031 Tc [(the)-350.2(after-crash)]TJ -40.9125 -1.125 TD 0 Tc [(state)-292.5(of)-292(the)-290.8(database.)-557.6(The)-295.3(use)-292(of)]TJ /TT2 1 Tf 13.6 0 TD (fsync)Tj /TT4 1 Tf 2.225 0 TD [(\(2\))-284(at)-278.3(transaction)-287.8(commit)-269.8(time)-272.7(provides)-281.2(guarantees)-299.6(of)-279.5(durability)-274.3(after)-293.5(system)]TJ -15.825 -1.125 TD [(failure.)-515.6(However,)-272.5(there)-264(is)-245.5(no)-250(mechanism)-258.3(to)-247.2(perform)-266.8(transaction)-262.8(abort.)]TJ /TT2 1 Tf 0 -2.325 TD [(5.1.1.)-500(Single-User)-256.2(Tests)]TJ /TT4 1 Tf 2.5 -1.5375 TD [(These)-399.8(tests)-384.7(compare)-407.6(LIBTP)-384.7(in)-372.2(a)-381.2(variety)-386.1(of)-379.5(con)]TJ /TT7 1 Tf 19.7563 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(gurations)-378.3(to)-372.2(traditional)-377.6(UNIX)-388(solutions)-363.2(and)-381.2(a)-381.2(commercial)]TJ -22.8125 -1.125 TD [(relational)-336.6(database)-345.1(system)-322.2(\(RDBMS\).)-320(To)-326.7(demonstrate)-337.8(the)-328.3(server)-344.6(architecture)-356.2(we)-334(built)-316.5(a)-331.2(front)-331.2(end)-318.7(test)-311.3(process)-326(that)]TJ T* [(uses)-490.3(TCL)-486.3([OUST90])-497.7(to)-484.7(parse)-502.6(database)-507.6(access)-508.8(commands)-492.5(and)-493.6(call)-481.6(the)-478.3(database)-495.1(access)-496.3(routines.)-728.3(In)-479.5(one)-481.2(case)]TJ T* [(\(SERVER\),)-262.5(frontend)-274.8(and)-268.7(backend)-281(processes)-280.5(were)-269.6(created)-276.3(which)-256.2(communicated)-263.3(via)-253.3(an)-256.2(IP)-248.3(socket.)-507.8(In)-254.5(the)-253.3(second)-260.6(case)]TJ T* [(\(TCL\),)-282.8(a)-281.2(single)-273.8(process)-288.5(read)-291.8(queries)-287.3(from)-281.2(standard)-287.3(input,)-269.3(parsed)-277.6(them,)-263(and)-268.7(called)-275.3(the)-265.8(database)-282.6(access)-283.8(routines.)-515.8(The)]TJ T* [(performance)-347.8(difference)-335.3(between)-318.5(the)-303.3(TCL)-298.8(and)-306.2(SERVER)-291(tests)-297.2(quanti)]TJ /TT7 1 Tf 27.5995 0 TD (Þ)Tj /TT4 1 Tf 0.5561 0 TD [(es)-298.8(the)-303.3(communication)-304.3(overhead)-322.9(of)-304.5(the)-303.3(socket.)]TJ -28.1557 -1.125 TD [(The)-657.8(RDBMS)-636(implementation)-648.6(used)-654.5(embedded)-665.6(SQL)-648.3(in)-647.2(C)-645.5(with)-647.2(stored)-656.2(database)-670.1(procedures.)-913.3(Therefore,)-671.1(its)]TJ T* (con)Tj /TT7 1 Tf 1.4438 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(guration)-267.5(is)-245.5(a)-256.2(hybrid)-251.7(of)-254.5(the)-253.3(single)-248.8(process)-263.5(architecture)-281.3(and)-256.2(the)-253.3(server)-269.6(architecture.)-531.3(The)-257.8(graph)-260.6(in)]TJ /TT7 1 Tf 38.3 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(gure)-254.5(six)-245.5(shows)]TJ -40.8561 -1.125 TD [(a)-256.2(comparison)-259.5(of)-254.5(the)-253.3(following)-248.8(six)-245.5(con)]TJ /TT7 1 Tf 15.1813 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD (gurations:)Tj -8.6 -1.95 TD [(LIBTP)-2547.2(Uses)-255.7(the)-253.3(LIBTP)-247.2(library)-259.5(in)-247.2(a)-256.2(single)-248.8(application.)]TJ 0 -1.125 TD [(TCL)-3436.3(Uses)-255.7(the)-253.3(LIBTP)-247.2(library)-259.5(in)-247.2(a)-256.2(single)-248.8(application,)-257.1(requires)-266.8(query)-260.6(parsing.)]TJ T* [(SERVER)-1491(Uses)-255.7(the)-253.3(LIBTP)-247.2(library)-259.5(in)-247.2(a)-256.2(server)-269.6(con)]TJ /TT7 1 Tf 20.8313 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(guration,)-255(requires)-266.8(query)-260.6(parsing.)]TJ -21.3875 -1.125 TD [(NOTP)-2713.7(Uses)-255.7(no)-250(locking,)-250.5(logging,)-244.3(or)-254.5(concurrency)-283.6(control.)]TJ T* [(FLOCK)-2046.7(Uses)]TJ /TT11 1 Tf 7.525 0 TD (ß)Tj /TT2 1 Tf 0.5562 0 TD (ock)Tj /TT4 1 Tf 1.4938 0 TD [(\(2\))-259(for)-259(concurrency)-283.6(control)-255(and)-256.2(nothing)-244.3(for)-259(durability.)]TJ -9.575 -1.125 TD [(FSYNC)-2101.4(Uses)]TJ /TT2 1 Tf 7.525 0 TD (fsync)Tj /TT4 1 Tf 2.225 0 TD [(\(2\))-259(for)-259(durability)-249.3(and)-256.1(nothing)-244.3(for)-259(concurrency)-283.6(control.)]TJ -9.75 -1.125 TD [(RDBMS)-1823.5(Uses)-255.7(a)-256.2(commercial)-267.8(relational)-261.6(database)-270.1(system.)]TJ -4.6375 -2.3625 TD [(The)-282.8(results)-276.7(show)-276.2(that)-275.5(LIBTP,)-272.2(both)-272.2(in)-272.2(the)-278.3(procedural)-299.6(and)-281.2(parsed)-290.1(environments,)-281.6(is)-270.5(competitive)-279.3(with)-272.2(a)-281.2(commer-)]TJ -2.5 -1.125 TD [(cial)-269.1(system)-259.7(\(comparing)-278.1(LIBTP,)-259.7(TCL,)-261.3(and)-256.2(RDBMS\).)-240.5(Compared)-259.5(to)-247.2(existing)-246(UNIX)-263(solutions,)-238.2(LIBTP)-247.2(is)-245.5(approximately)]TJ T* [(15%)-454.5(slower)-459(than)-453.3(using)]TJ /TT11 1 Tf 10.2 0 TD (ß)Tj /TT2 1 Tf 0.5562 0 TD (ock)Tj /TT4 1 Tf 1.4938 0 TD [(\(2\))-459(or)-454.5(no)-450(protection)-458.3(but)-447.2(over)-460.6(80%)-454.5(better)-461.1(than)-440.8(using)]TJ /TT2 1 Tf 22.625 0 TD (fsync)Tj /TT4 1 Tf 2.225 0 TD [(\(2\))-446.5(\(comparing)-453.1(LIBTP,)]TJ -37.1 -1.125 TD [(FLOCK,)-246.7(NOTP,)-251.2(and)-256.2(FSYNC\).)]TJ ET endstream endobj 54 0 obj << /ProcSet [/PDF /Text ] /Font << /TT2 4 0 R /TT4 5 0 R /TT7 7 0 R /TT11 55 0 R >> /ExtGState << /GS1 9 0 R >> >> endobj 59 0 obj << /Length 33254 >> stream BT /TT2 1 Tf 8 0 0 8 437.5 519 Tm 0 g /GS1 gs 0 Tc 0 Tw (RDBMS)Tj ET q 1 i 444.125 531.375 15.375 91.75 re W* n q 0.96 0 0 15.36 443.28 607.2601 cm /Im14 Do Q q 0.96 0 0 15.36 444.24 607.2601 cm /Im14 Do Q q 0.96 0 0 15.36 445.2 607.2601 cm /Im14 Do Q q 0.96 0 0 15.36 446.16 607.2601 cm /Im14 Do Q q 0.96 0 0 15.36 447.12 607.2601 cm /Im14 Do Q q 0.96 0 0 15.36 448.08 607.2601 cm /Im14 Do Q q 0.96 0 0 15.36 449.04 607.2601 cm /Im14 Do Q q 0.96 0 0 15.36 450 607.2601 cm /Im14 Do Q q 0.96 0 0 15.36 450.96 607.2601 cm /Im14 Do Q q 0.96 0 0 15.36 451.92 607.2601 cm /Im14 Do Q q 0.96 0 0 15.36 452.88 607.2601 cm /Im14 Do Q q 0.96 0 0 15.36 453.84 607.2601 cm /Im14 Do Q q 0.96 0 0 15.36 454.8 607.2601 cm /Im14 Do Q q 0.96 0 0 15.36 455.76 607.2601 cm /Im14 Do Q q 0.96 0 0 15.36 456.72 607.2601 cm /Im14 Do Q q 0.96 0 0 15.36 457.68 607.2601 cm /Im14 Do Q q 0.96 0 0 15.36 458.64 607.2601 cm /Im14 Do Q q 0.96 0 0 15.36 443.28 591.9 cm /Im14 Do Q q 0.96 0 0 15.36 444.24 591.9 cm /Im14 Do Q q 0.96 0 0 15.36 445.2 591.9 cm /Im14 Do Q q 0.96 0 0 15.36 446.16 591.9 cm /Im14 Do Q q 0.96 0 0 15.36 447.12 591.9 cm /Im14 Do Q q 0.96 0 0 15.36 448.08 591.9 cm /Im14 Do Q q 0.96 0 0 15.36 449.04 591.9 cm /Im14 Do Q q 0.96 0 0 15.36 450 591.9 cm /Im14 Do Q q 0.96 0 0 15.36 450.96 591.9 cm /Im14 Do Q q 0.96 0 0 15.36 451.92 591.9 cm /Im14 Do Q q 0.96 0 0 15.36 452.88 591.9 cm /Im14 Do Q q 0.96 0 0 15.36 453.84 591.9 cm /Im14 Do Q q 0.96 0 0 15.36 454.8 591.9 cm /Im14 Do Q q 0.96 0 0 15.36 455.76 591.9 cm /Im14 Do Q q 0.96 0 0 15.36 456.72 591.9 cm /Im14 Do Q q 0.96 0 0 15.36 457.68 591.9 cm /Im14 Do Q q 0.96 0 0 15.36 458.64 591.9 cm /Im14 Do Q q 0.96 0 0 15.36 443.28 576.54 cm /Im14 Do Q q 0.96 0 0 15.36 444.24 576.54 cm /Im14 Do Q q 0.96 0 0 15.36 445.2 576.54 cm /Im14 Do Q q 0.96 0 0 15.36 446.16 576.54 cm /Im14 Do Q q 0.96 0 0 15.36 447.12 576.54 cm /Im14 Do Q q 0.96 0 0 15.36 448.08 576.54 cm /Im14 Do Q q 0.96 0 0 15.36 449.04 576.54 cm /Im14 Do Q q 0.96 0 0 15.36 450 576.54 cm /Im14 Do Q q 0.96 0 0 15.36 450.96 576.54 cm /Im14 Do Q q 0.96 0 0 15.36 451.92 576.54 cm /Im14 Do Q q 0.96 0 0 15.36 452.88 576.54 cm /Im14 Do Q q 0.96 0 0 15.36 453.84 576.54 cm /Im14 Do Q q 0.96 0 0 15.36 454.8 576.54 cm /Im14 Do Q q 0.96 0 0 15.36 455.76 576.54 cm /Im14 Do Q q 0.96 0 0 15.36 456.72 576.54 cm /Im14 Do Q q 0.96 0 0 15.36 457.68 576.54 cm /Im14 Do Q q 0.96 0 0 15.36 458.64 576.54 cm /Im14 Do Q q 0.96 0 0 15.36 443.28 561.1801 cm /Im14 Do Q q 0.96 0 0 15.36 444.24 561.1801 cm /Im14 Do Q q 0.96 0 0 15.36 445.2 561.1801 cm /Im14 Do Q q 0.96 0 0 15.36 446.16 561.1801 cm /Im14 Do Q q 0.96 0 0 15.36 447.12 561.1801 cm /Im14 Do Q q 0.96 0 0 15.36 448.08 561.1801 cm /Im14 Do Q q 0.96 0 0 15.36 449.04 561.1801 cm /Im14 Do Q q 0.96 0 0 15.36 450 561.1801 cm /Im14 Do Q q 0.96 0 0 15.36 450.96 561.1801 cm /Im14 Do Q q 0.96 0 0 15.36 451.92 561.1801 cm /Im14 Do Q q 0.96 0 0 15.36 452.88 561.1801 cm /Im14 Do Q q 0.96 0 0 15.36 453.84 561.1801 cm /Im14 Do Q q 0.96 0 0 15.36 454.8 561.1801 cm /Im14 Do Q q 0.96 0 0 15.36 455.76 561.1801 cm /Im14 Do Q q 0.96 0 0 15.36 456.72 561.1801 cm /Im14 Do Q q 0.96 0 0 15.36 457.68 561.1801 cm /Im14 Do Q q 0.96 0 0 15.36 458.64 561.1801 cm /Im14 Do Q q 0.96 0 0 15.36 443.28 545.8201 cm /Im14 Do Q q 0.96 0 0 15.36 444.24 545.8201 cm /Im14 Do Q q 0.96 0 0 15.36 445.2 545.8201 cm /Im14 Do Q q 0.96 0 0 15.36 446.16 545.8201 cm /Im14 Do Q q 0.96 0 0 15.36 447.12 545.8201 cm /Im14 Do Q q 0.96 0 0 15.36 448.08 545.8201 cm /Im14 Do Q q 0.96 0 0 15.36 449.04 545.8201 cm /Im14 Do Q q 0.96 0 0 15.36 450 545.8201 cm /Im14 Do Q q 0.96 0 0 15.36 450.96 545.8201 cm /Im14 Do Q q 0.96 0 0 15.36 451.92 545.8201 cm /Im14 Do Q q 0.96 0 0 15.36 452.88 545.8201 cm /Im14 Do Q q 0.96 0 0 15.36 453.84 545.8201 cm /Im14 Do Q q 0.96 0 0 15.36 454.8 545.8201 cm /Im14 Do Q q 0.96 0 0 15.36 455.76 545.8201 cm /Im14 Do Q q 0.96 0 0 15.36 456.72 545.8201 cm /Im14 Do Q q 0.96 0 0 15.36 457.68 545.8201 cm /Im14 Do Q q 0.96 0 0 15.36 458.64 545.8201 cm /Im14 Do Q q 0.96 0 0 15.36 443.28 530.4601 cm /Im14 Do Q q 0.96 0 0 15.36 444.24 530.4601 cm /Im14 Do Q q 0.96 0 0 15.36 445.2 530.4601 cm /Im14 Do Q q 0.96 0 0 15.36 446.16 530.4601 cm /Im14 Do Q q 0.96 0 0 15.36 447.12 530.4601 cm /Im14 Do Q q 0.96 0 0 15.36 448.08 530.4601 cm /Im14 Do Q q 0.96 0 0 15.36 449.04 530.4601 cm /Im14 Do Q q 0.96 0 0 15.36 450 530.4601 cm /Im14 Do Q q 0.96 0 0 15.36 450.96 530.4601 cm /Im14 Do Q q 0.96 0 0 15.36 451.92 530.4601 cm /Im14 Do Q q 0.96 0 0 15.36 452.88 530.4601 cm /Im14 Do Q q 0.96 0 0 15.36 453.84 530.4601 cm /Im14 Do Q q 0.96 0 0 15.36 454.8 530.4601 cm /Im14 Do Q q 0.96 0 0 15.36 455.76 530.4601 cm /Im14 Do Q q 0.96 0 0 15.36 456.72 530.4601 cm /Im14 Do Q q 0.96 0 0 15.36 457.68 530.4601 cm /Im14 Do Q q 0.96 0 0 15.36 458.64 530.4601 cm /Im14 Do Q Q 0 G 1 J 0 j 0.25 w 10 M []0 d 1 i 444.125 531.375 15.375 91.75 re S BT 8 0 0 8 252.25 519 Tm (SERVER)Tj ET 215 646 m 215 531.375 l 215 531.375 m 230.25 531.375 l 230.25 531.375 m 230.25 646 l 230.25 646 m 215 646 l S BT 8 0 0 8 214.375 519 Tm (TCL)Tj ET q 260.875 600.25 15.25 -68.875 re W* n q 0.96 0 0 61.44 275.28 538.14 cm /Im13 Do Q q 0.96 0 0 7.44 275.28 530.7 cm /Im15 Do Q Q 260.875 600.25 15.25 -68.875 re S q 398.375 600.25 m 413.625 600.25 l 413.625 531.375 l 398.375 531.375 l 398.375 600.25 l W* n q 0.96 0 0 15.36 398.16 584.22 cm /Im8 Do Q q 0.96 0 0 15.36 399.12 584.22 cm /Im8 Do Q q 0.96 0 0 15.36 400.08 584.22 cm /Im8 Do Q q 0.96 0 0 15.36 401.04 584.22 cm /Im8 Do Q q 0.96 0 0 15.36 402 584.22 cm /Im8 Do Q q 0.96 0 0 15.36 402.96 584.22 cm /Im8 Do Q q 0.96 0 0 15.36 403.92 584.22 cm /Im8 Do Q q 0.96 0 0 15.36 404.88 584.22 cm /Im8 Do Q q 0.96 0 0 15.36 405.84 584.22 cm /Im8 Do Q q 0.96 0 0 15.36 406.8 584.22 cm /Im8 Do Q q 0.96 0 0 15.36 407.76 584.22 cm /Im8 Do Q q 0.96 0 0 15.36 408.72 584.22 cm /Im8 Do Q q 0.96 0 0 15.36 409.68 584.22 cm /Im8 Do Q q 0.96 0 0 15.36 410.64 584.22 cm /Im8 Do Q q 0.96 0 0 15.36 411.6 584.22 cm /Im8 Do Q q 0.96 0 0 15.36 412.56 584.22 cm /Im8 Do Q q 0.72 0 0 15.36 413.52 584.22 cm /Im16 Do Q q 0.96 0 0 15.36 398.16 568.86 cm /Im8 Do Q q 0.96 0 0 15.36 399.12 568.86 cm /Im8 Do Q q 0.96 0 0 15.36 400.08 568.86 cm /Im8 Do Q q 0.96 0 0 15.36 401.04 568.86 cm /Im8 Do Q q 0.96 0 0 15.36 402 568.86 cm /Im8 Do Q q 0.96 0 0 15.36 402.96 568.86 cm /Im8 Do Q q 0.96 0 0 15.36 403.92 568.86 cm /Im8 Do Q q 0.96 0 0 15.36 404.88 568.86 cm /Im8 Do Q q 0.96 0 0 15.36 405.84 568.86 cm /Im8 Do Q q 0.96 0 0 15.36 406.8 568.86 cm /Im8 Do Q q 0.96 0 0 15.36 407.76 568.86 cm /Im8 Do Q q 0.96 0 0 15.36 408.72 568.86 cm /Im8 Do Q q 0.96 0 0 15.36 409.68 568.86 cm /Im8 Do Q q 0.96 0 0 15.36 410.64 568.86 cm /Im8 Do Q q 0.96 0 0 15.36 411.6 568.86 cm /Im8 Do Q q 0.96 0 0 15.36 412.56 568.86 cm /Im8 Do Q q 0.72 0 0 15.36 413.52 568.86 cm /Im16 Do Q q 0.96 0 0 15.36 398.16 553.5001 cm /Im8 Do Q q 0.96 0 0 15.36 399.12 553.5001 cm /Im8 Do Q q 0.96 0 0 15.36 400.08 553.5001 cm /Im8 Do Q q 0.96 0 0 15.36 401.04 553.5001 cm /Im8 Do Q q 0.96 0 0 15.36 402 553.5001 cm /Im8 Do Q q 0.96 0 0 15.36 402.96 553.5001 cm /Im8 Do Q q 0.96 0 0 15.36 403.92 553.5001 cm /Im8 Do Q q 0.96 0 0 15.36 404.88 553.5001 cm /Im8 Do Q q 0.96 0 0 15.36 405.84 553.5001 cm /Im8 Do Q q 0.96 0 0 15.36 406.8 553.5001 cm /Im8 Do Q q 0.96 0 0 15.36 407.76 553.5001 cm /Im8 Do Q q 0.96 0 0 15.36 408.72 553.5001 cm /Im8 Do Q q 0.96 0 0 15.36 409.68 553.5001 cm /Im8 Do Q q 0.96 0 0 15.36 410.64 553.5001 cm /Im8 Do Q q 0.96 0 0 15.36 411.6 553.5001 cm /Im8 Do Q q 0.96 0 0 15.36 412.56 553.5001 cm /Im8 Do Q q 0.72 0 0 15.36 413.52 553.5001 cm /Im16 Do Q q 0.96 0 0 15.36 398.16 538.14 cm /Im8 Do Q q 0.96 0 0 15.36 399.12 538.14 cm /Im8 Do Q q 0.96 0 0 15.36 400.08 538.14 cm /Im8 Do Q q 0.96 0 0 15.36 401.04 538.14 cm /Im8 Do Q q 0.96 0 0 15.36 402 538.14 cm /Im8 Do Q q 0.96 0 0 15.36 402.96 538.14 cm /Im8 Do Q q 0.96 0 0 15.36 403.92 538.14 cm /Im8 Do Q q 0.96 0 0 15.36 404.88 538.14 cm /Im8 Do Q q 0.96 0 0 15.36 405.84 538.14 cm /Im8 Do Q q 0.96 0 0 15.36 406.8 538.14 cm /Im8 Do Q q 0.96 0 0 15.36 407.76 538.14 cm /Im8 Do Q q 0.96 0 0 15.36 408.72 538.14 cm /Im8 Do Q q 0.96 0 0 15.36 409.68 538.14 cm /Im8 Do Q q 0.96 0 0 15.36 410.64 538.14 cm /Im8 Do Q q 0.96 0 0 15.36 411.6 538.14 cm /Im8 Do Q q 0.96 0 0 15.36 412.56 538.14 cm /Im8 Do Q q 0.72 0 0 15.36 413.52 538.14 cm /Im16 Do Q q 0.96 0 0 7.44 398.16 530.7 cm /Im18 Do Q q 0.96 0 0 7.44 399.12 530.7 cm /Im18 Do Q q 0.96 0 0 7.44 400.08 530.7 cm /Im18 Do Q q 0.96 0 0 7.44 401.04 530.7 cm /Im18 Do Q q 0.96 0 0 7.44 402 530.7 cm /Im18 Do Q q 0.96 0 0 7.44 402.96 530.7 cm /Im18 Do Q q 0.96 0 0 7.44 403.92 530.7 cm /Im18 Do Q q 0.96 0 0 7.44 404.88 530.7 cm /Im18 Do Q q 0.96 0 0 7.44 405.84 530.7 cm /Im18 Do Q q 0.96 0 0 7.44 406.8 530.7 cm /Im18 Do Q q 0.96 0 0 7.44 407.76 530.7 cm /Im18 Do Q q 0.96 0 0 7.44 408.72 530.7 cm /Im18 Do Q q 0.96 0 0 7.44 409.68 530.7 cm /Im18 Do Q q 0.96 0 0 7.44 410.64 530.7 cm /Im18 Do Q q 0.96 0 0 7.44 411.6 530.7 cm /Im18 Do Q q 0.96 0 0 7.44 412.56 530.7 cm /Im18 Do Q q 0.72 0 0 7.44 413.52 530.7 cm /Im19 Do Q Q 398.375 600.25 15.25 -68.875 re S BT 8 0 0 8 392.75 519 Tm (FSYNC)Tj -11.2031 0 TD (NOTP)Tj ET q 306.625 672.625 15.375 -141.25 re W* n q 0.96 0 0 15.36 306 657.1801 cm /Im1 Do Q q 0.96 0 0 15.36 306.96 657.1801 cm /Im1 Do Q q 0.96 0 0 15.36 307.92 657.1801 cm /Im1 Do Q q 0.96 0 0 15.36 308.88 657.1801 cm /Im1 Do Q q 0.96 0 0 15.36 309.84 657.1801 cm /Im1 Do Q q 0.96 0 0 15.36 310.8 657.1801 cm /Im1 Do Q q 0.96 0 0 15.36 311.76 657.1801 cm /Im1 Do Q q 0.96 0 0 15.36 312.72 657.1801 cm /Im1 Do Q q 0.96 0 0 15.36 313.68 657.1801 cm /Im1 Do Q q 0.96 0 0 15.36 314.64 657.1801 cm /Im1 Do Q q 0.96 0 0 15.36 315.6 657.1801 cm /Im1 Do Q q 0.96 0 0 15.36 316.56 657.1801 cm /Im1 Do Q q 0.96 0 0 15.36 317.52 657.1801 cm /Im1 Do Q q 0.96 0 0 15.36 318.48 657.1801 cm /Im1 Do Q q 0.96 0 0 15.36 319.44 657.1801 cm /Im1 Do Q q 0.96 0 0 15.36 320.4 657.1801 cm /Im1 Do Q q 0.96 0 0 15.36 321.36 657.1801 cm /Im1 Do Q q 0.96 0 0 15.36 306 641.8201 cm /Im1 Do Q q 0.96 0 0 15.36 306.96 641.8201 cm /Im1 Do Q q 0.96 0 0 15.36 307.92 641.8201 cm /Im1 Do Q q 0.96 0 0 15.36 308.88 641.8201 cm /Im1 Do Q q 0.96 0 0 15.36 309.84 641.8201 cm /Im1 Do Q q 0.96 0 0 15.36 310.8 641.8201 cm /Im1 Do Q q 0.96 0 0 15.36 311.76 641.8201 cm /Im1 Do Q q 0.96 0 0 15.36 312.72 641.8201 cm /Im1 Do Q q 0.96 0 0 15.36 313.68 641.8201 cm /Im1 Do Q q 0.96 0 0 15.36 314.64 641.8201 cm /Im1 Do Q q 0.96 0 0 15.36 315.6 641.8201 cm /Im1 Do Q q 0.96 0 0 15.36 316.56 641.8201 cm /Im1 Do Q q 0.96 0 0 15.36 317.52 641.8201 cm /Im1 Do Q q 0.96 0 0 15.36 318.48 641.8201 cm /Im1 Do Q q 0.96 0 0 15.36 319.44 641.8201 cm /Im1 Do Q q 0.96 0 0 15.36 320.4 641.8201 cm /Im1 Do Q q 0.96 0 0 15.36 321.36 641.8201 cm /Im1 Do Q q 0.96 0 0 15.36 306 626.4601 cm /Im1 Do Q q 0.96 0 0 15.36 306.96 626.4601 cm /Im1 Do Q q 0.96 0 0 15.36 307.92 626.4601 cm /Im1 Do Q q 0.96 0 0 15.36 308.88 626.4601 cm /Im1 Do Q q 0.96 0 0 15.36 309.84 626.4601 cm /Im1 Do Q q 0.96 0 0 15.36 310.8 626.4601 cm /Im1 Do Q q 0.96 0 0 15.36 311.76 626.4601 cm /Im1 Do Q q 0.96 0 0 15.36 312.72 626.4601 cm /Im1 Do Q q 0.96 0 0 15.36 313.68 626.4601 cm /Im1 Do Q q 0.96 0 0 15.36 314.64 626.4601 cm /Im1 Do Q q 0.96 0 0 15.36 315.6 626.4601 cm /Im1 Do Q q 0.96 0 0 15.36 316.56 626.4601 cm /Im1 Do Q q 0.96 0 0 15.36 317.52 626.4601 cm /Im1 Do Q q 0.96 0 0 15.36 318.48 626.4601 cm /Im1 Do Q q 0.96 0 0 15.36 319.44 626.4601 cm /Im1 Do Q q 0.96 0 0 15.36 320.4 626.4601 cm /Im1 Do Q q 0.96 0 0 15.36 321.36 626.4601 cm /Im1 Do Q q 0.96 0 0 15.36 306 611.1 cm /Im1 Do Q q 0.96 0 0 15.36 306.96 611.1 cm /Im1 Do Q q 0.96 0 0 15.36 307.92 611.1 cm /Im1 Do Q q 0.96 0 0 15.36 308.88 611.1 cm /Im1 Do Q q 0.96 0 0 15.36 309.84 611.1 cm /Im1 Do Q q 0.96 0 0 15.36 310.8 611.1 cm /Im1 Do Q q 0.96 0 0 15.36 311.76 611.1 cm /Im1 Do Q q 0.96 0 0 15.36 312.72 611.1 cm /Im1 Do Q q 0.96 0 0 15.36 313.68 611.1 cm /Im1 Do Q q 0.96 0 0 15.36 314.64 611.1 cm /Im1 Do Q q 0.96 0 0 15.36 315.6 611.1 cm /Im1 Do Q q 0.96 0 0 15.36 316.56 611.1 cm /Im1 Do Q q 0.96 0 0 15.36 317.52 611.1 cm /Im1 Do Q q 0.96 0 0 15.36 318.48 611.1 cm /Im1 Do Q q 0.96 0 0 15.36 319.44 611.1 cm /Im1 Do Q q 0.96 0 0 15.36 320.4 611.1 cm /Im1 Do Q q 0.96 0 0 15.36 321.36 611.1 cm /Im1 Do Q q 0.96 0 0 15.36 306 595.7401 cm /Im1 Do Q q 0.96 0 0 15.36 306.96 595.7401 cm /Im1 Do Q q 0.96 0 0 15.36 307.92 595.7401 cm /Im1 Do Q q 0.96 0 0 15.36 308.88 595.7401 cm /Im1 Do Q q 0.96 0 0 15.36 309.84 595.7401 cm /Im1 Do Q q 0.96 0 0 15.36 310.8 595.7401 cm /Im1 Do Q q 0.96 0 0 15.36 311.76 595.7401 cm /Im1 Do Q q 0.96 0 0 15.36 312.72 595.7401 cm /Im1 Do Q q 0.96 0 0 15.36 313.68 595.7401 cm /Im1 Do Q q 0.96 0 0 15.36 314.64 595.7401 cm /Im1 Do Q q 0.96 0 0 15.36 315.6 595.7401 cm /Im1 Do Q q 0.96 0 0 15.36 316.56 595.7401 cm /Im1 Do Q q 0.96 0 0 15.36 317.52 595.7401 cm /Im1 Do Q q 0.96 0 0 15.36 318.48 595.7401 cm /Im1 Do Q q 0.96 0 0 15.36 319.44 595.7401 cm /Im1 Do Q q 0.96 0 0 15.36 320.4 595.7401 cm /Im1 Do Q q 0.96 0 0 15.36 321.36 595.7401 cm /Im1 Do Q q 0.96 0 0 15.36 306 580.3801 cm /Im1 Do Q q 0.96 0 0 15.36 306.96 580.3801 cm /Im1 Do Q q 0.96 0 0 15.36 307.92 580.3801 cm /Im1 Do Q q 0.96 0 0 15.36 308.88 580.3801 cm /Im1 Do Q q 0.96 0 0 15.36 309.84 580.3801 cm /Im1 Do Q q 0.96 0 0 15.36 310.8 580.3801 cm /Im1 Do Q q 0.96 0 0 15.36 311.76 580.3801 cm /Im1 Do Q q 0.96 0 0 15.36 312.72 580.3801 cm /Im1 Do Q q 0.96 0 0 15.36 313.68 580.3801 cm /Im1 Do Q q 0.96 0 0 15.36 314.64 580.3801 cm /Im1 Do Q q 0.96 0 0 15.36 315.6 580.3801 cm /Im1 Do Q q 0.96 0 0 15.36 316.56 580.3801 cm /Im1 Do Q q 0.96 0 0 15.36 317.52 580.3801 cm /Im1 Do Q q 0.96 0 0 15.36 318.48 580.3801 cm /Im1 Do Q q 0.96 0 0 15.36 319.44 580.3801 cm /Im1 Do Q q 0.96 0 0 15.36 320.4 580.3801 cm /Im1 Do Q q 0.96 0 0 15.36 321.36 580.3801 cm /Im1 Do Q q 0.96 0 0 15.36 306 565.02 cm /Im1 Do Q q 0.96 0 0 15.36 306.96 565.02 cm /Im1 Do Q q 0.96 0 0 15.36 307.92 565.02 cm /Im1 Do Q q 0.96 0 0 15.36 308.88 565.02 cm /Im1 Do Q q 0.96 0 0 15.36 309.84 565.02 cm /Im1 Do Q q 0.96 0 0 15.36 310.8 565.02 cm /Im1 Do Q q 0.96 0 0 15.36 311.76 565.02 cm /Im1 Do Q q 0.96 0 0 15.36 312.72 565.02 cm /Im1 Do Q q 0.96 0 0 15.36 313.68 565.02 cm /Im1 Do Q q 0.96 0 0 15.36 314.64 565.02 cm /Im1 Do Q q 0.96 0 0 15.36 315.6 565.02 cm /Im1 Do Q q 0.96 0 0 15.36 316.56 565.02 cm /Im1 Do Q q 0.96 0 0 15.36 317.52 565.02 cm /Im1 Do Q q 0.96 0 0 15.36 318.48 565.02 cm /Im1 Do Q q 0.96 0 0 15.36 319.44 565.02 cm /Im1 Do Q q 0.96 0 0 15.36 320.4 565.02 cm /Im1 Do Q q 0.96 0 0 15.36 321.36 565.02 cm /Im1 Do Q q 0.96 0 0 15.36 306 549.66 cm /Im1 Do Q q 0.96 0 0 15.36 306.96 549.66 cm /Im1 Do Q q 0.96 0 0 15.36 307.92 549.66 cm /Im1 Do Q q 0.96 0 0 15.36 308.88 549.66 cm /Im1 Do Q q 0.96 0 0 15.36 309.84 549.66 cm /Im1 Do Q q 0.96 0 0 15.36 310.8 549.66 cm /Im1 Do Q q 0.96 0 0 15.36 311.76 549.66 cm /Im1 Do Q q 0.96 0 0 15.36 312.72 549.66 cm /Im1 Do Q q 0.96 0 0 15.36 313.68 549.66 cm /Im1 Do Q q 0.96 0 0 15.36 314.64 549.66 cm /Im1 Do Q q 0.96 0 0 15.36 315.6 549.66 cm /Im1 Do Q q 0.96 0 0 15.36 316.56 549.66 cm /Im1 Do Q q 0.96 0 0 15.36 317.52 549.66 cm /Im1 Do Q q 0.96 0 0 15.36 318.48 549.66 cm /Im1 Do Q q 0.96 0 0 15.36 319.44 549.66 cm /Im1 Do Q q 0.96 0 0 15.36 320.4 549.66 cm /Im1 Do Q q 0.96 0 0 15.36 321.36 549.66 cm /Im1 Do Q q 0.96 0 0 15.36 306 534.3 cm /Im1 Do Q q 0.96 0 0 15.36 306.96 534.3 cm /Im1 Do Q q 0.96 0 0 15.36 307.92 534.3 cm /Im1 Do Q q 0.96 0 0 15.36 308.88 534.3 cm /Im1 Do Q q 0.96 0 0 15.36 309.84 534.3 cm /Im1 Do Q q 0.96 0 0 15.36 310.8 534.3 cm /Im1 Do Q q 0.96 0 0 15.36 311.76 534.3 cm /Im1 Do Q q 0.96 0 0 15.36 312.72 534.3 cm /Im1 Do Q q 0.96 0 0 15.36 313.68 534.3 cm /Im1 Do Q q 0.96 0 0 15.36 314.64 534.3 cm /Im1 Do Q q 0.96 0 0 15.36 315.6 534.3 cm /Im1 Do Q q 0.96 0 0 15.36 316.56 534.3 cm /Im1 Do Q q 0.96 0 0 15.36 317.52 534.3 cm /Im1 Do Q q 0.96 0 0 15.36 318.48 534.3 cm /Im1 Do Q q 0.96 0 0 15.36 319.44 534.3 cm /Im1 Do Q q 0.96 0 0 15.36 320.4 534.3 cm /Im1 Do Q q 0.96 0 0 15.36 321.36 534.3 cm /Im1 Do Q q 0.96 0 0 3.6 306 530.7001 cm /Im20 Do Q q 0.96 0 0 3.6 306.96 530.7001 cm /Im20 Do Q q 0.96 0 0 3.6 307.92 530.7001 cm /Im20 Do Q q 0.96 0 0 3.6 308.88 530.7001 cm /Im20 Do Q q 0.96 0 0 3.6 309.84 530.7001 cm /Im20 Do Q q 0.96 0 0 3.6 310.8 530.7001 cm /Im20 Do Q q 0.96 0 0 3.6 311.76 530.7001 cm /Im20 Do Q q 0.96 0 0 3.6 312.72 530.7001 cm /Im20 Do Q q 0.96 0 0 3.6 313.68 530.7001 cm /Im20 Do Q q 0.96 0 0 3.6 314.64 530.7001 cm /Im20 Do Q q 0.96 0 0 3.6 315.6 530.7001 cm /Im20 Do Q q 0.96 0 0 3.6 316.56 530.7001 cm /Im20 Do Q q 0.96 0 0 3.6 317.52 530.7001 cm /Im20 Do Q q 0.96 0 0 3.6 318.48 530.7001 cm /Im20 Do Q q 0.96 0 0 3.6 319.44 530.7001 cm /Im20 Do Q q 0.96 0 0 3.6 320.4 530.7001 cm /Im20 Do Q q 0.96 0 0 3.6 321.36 530.7001 cm /Im20 Do Q Q 306.625 672.625 15.375 -141.25 re S q 352.5 667 15.25 -135.625 re W* n q 0.96 0 0 15.36 352.08 651.42 cm /Im4 Do Q q 0.96 0 0 15.36 353.04 651.42 cm /Im4 Do Q q 0.96 0 0 15.36 354 651.42 cm /Im4 Do Q q 0.96 0 0 15.36 354.96 651.42 cm /Im4 Do Q q 0.96 0 0 15.36 355.92 651.42 cm /Im4 Do Q q 0.96 0 0 15.36 356.88 651.42 cm /Im4 Do Q q 0.96 0 0 15.36 357.84 651.42 cm /Im4 Do Q q 0.96 0 0 15.36 358.8 651.42 cm /Im4 Do Q q 0.96 0 0 15.36 359.76 651.42 cm /Im4 Do Q q 0.96 0 0 15.36 360.72 651.42 cm /Im4 Do Q q 0.96 0 0 15.36 361.68 651.42 cm /Im4 Do Q q 0.96 0 0 15.36 362.64 651.42 cm /Im4 Do Q q 0.96 0 0 15.36 363.6 651.42 cm /Im4 Do Q q 0.96 0 0 15.36 364.56 651.42 cm /Im4 Do Q q 0.96 0 0 15.36 365.52 651.42 cm /Im4 Do Q q 0.96 0 0 15.36 366.48 651.42 cm /Im4 Do Q q 0.96 0 0 15.36 367.44 651.42 cm /Im4 Do Q q 0.96 0 0 15.36 352.08 636.0601 cm /Im4 Do Q q 0.96 0 0 15.36 353.04 636.0601 cm /Im4 Do Q q 0.96 0 0 15.36 354 636.0601 cm /Im4 Do Q q 0.96 0 0 15.36 354.96 636.0601 cm /Im4 Do Q q 0.96 0 0 15.36 355.92 636.0601 cm /Im4 Do Q q 0.96 0 0 15.36 356.88 636.0601 cm /Im4 Do Q q 0.96 0 0 15.36 357.84 636.0601 cm /Im4 Do Q q 0.96 0 0 15.36 358.8 636.0601 cm /Im4 Do Q q 0.96 0 0 15.36 359.76 636.0601 cm /Im4 Do Q q 0.96 0 0 15.36 360.72 636.0601 cm /Im4 Do Q q 0.96 0 0 15.36 361.68 636.0601 cm /Im4 Do Q q 0.96 0 0 15.36 362.64 636.0601 cm /Im4 Do Q q 0.96 0 0 15.36 363.6 636.0601 cm /Im4 Do Q q 0.96 0 0 15.36 364.56 636.0601 cm /Im4 Do Q q 0.96 0 0 15.36 365.52 636.0601 cm /Im4 Do Q q 0.96 0 0 15.36 366.48 636.0601 cm /Im4 Do Q q 0.96 0 0 15.36 367.44 636.0601 cm /Im4 Do Q q 0.96 0 0 15.36 352.08 620.7001 cm /Im4 Do Q q 0.96 0 0 15.36 353.04 620.7001 cm /Im4 Do Q q 0.96 0 0 15.36 354 620.7001 cm /Im4 Do Q q 0.96 0 0 15.36 354.96 620.7001 cm /Im4 Do Q q 0.96 0 0 15.36 355.92 620.7001 cm /Im4 Do Q q 0.96 0 0 15.36 356.88 620.7001 cm /Im4 Do Q q 0.96 0 0 15.36 357.84 620.7001 cm /Im4 Do Q q 0.96 0 0 15.36 358.8 620.7001 cm /Im4 Do Q q 0.96 0 0 15.36 359.76 620.7001 cm /Im4 Do Q q 0.96 0 0 15.36 360.72 620.7001 cm /Im4 Do Q q 0.96 0 0 15.36 361.68 620.7001 cm /Im4 Do Q q 0.96 0 0 15.36 362.64 620.7001 cm /Im4 Do Q q 0.96 0 0 15.36 363.6 620.7001 cm /Im4 Do Q q 0.96 0 0 15.36 364.56 620.7001 cm /Im4 Do Q q 0.96 0 0 15.36 365.52 620.7001 cm /Im4 Do Q q 0.96 0 0 15.36 366.48 620.7001 cm /Im4 Do Q q 0.96 0 0 15.36 367.44 620.7001 cm /Im4 Do Q q 0.96 0 0 15.36 352.08 605.3401 cm /Im4 Do Q q 0.96 0 0 15.36 353.04 605.3401 cm /Im4 Do Q q 0.96 0 0 15.36 354 605.3401 cm /Im4 Do Q q 0.96 0 0 15.36 354.96 605.3401 cm /Im4 Do Q q 0.96 0 0 15.36 355.92 605.3401 cm /Im4 Do Q q 0.96 0 0 15.36 356.88 605.3401 cm /Im4 Do Q q 0.96 0 0 15.36 357.84 605.3401 cm /Im4 Do Q q 0.96 0 0 15.36 358.8 605.3401 cm /Im4 Do Q q 0.96 0 0 15.36 359.76 605.3401 cm /Im4 Do Q q 0.96 0 0 15.36 360.72 605.3401 cm /Im4 Do Q q 0.96 0 0 15.36 361.68 605.3401 cm /Im4 Do Q q 0.96 0 0 15.36 362.64 605.3401 cm /Im4 Do Q q 0.96 0 0 15.36 363.6 605.3401 cm /Im4 Do Q q 0.96 0 0 15.36 364.56 605.3401 cm /Im4 Do Q q 0.96 0 0 15.36 365.52 605.3401 cm /Im4 Do Q q 0.96 0 0 15.36 366.48 605.3401 cm /Im4 Do Q q 0.96 0 0 15.36 367.44 605.3401 cm /Im4 Do Q q 0.96 0 0 15.36 352.08 589.98 cm /Im4 Do Q q 0.96 0 0 15.36 353.04 589.98 cm /Im4 Do Q q 0.96 0 0 15.36 354 589.98 cm /Im4 Do Q q 0.96 0 0 15.36 354.96 589.98 cm /Im4 Do Q q 0.96 0 0 15.36 355.92 589.98 cm /Im4 Do Q q 0.96 0 0 15.36 356.88 589.98 cm /Im4 Do Q q 0.96 0 0 15.36 357.84 589.98 cm /Im4 Do Q q 0.96 0 0 15.36 358.8 589.98 cm /Im4 Do Q q 0.96 0 0 15.36 359.76 589.98 cm /Im4 Do Q q 0.96 0 0 15.36 360.72 589.98 cm /Im4 Do Q q 0.96 0 0 15.36 361.68 589.98 cm /Im4 Do Q q 0.96 0 0 15.36 362.64 589.98 cm /Im4 Do Q q 0.96 0 0 15.36 363.6 589.98 cm /Im4 Do Q q 0.96 0 0 15.36 364.56 589.98 cm /Im4 Do Q q 0.96 0 0 15.36 365.52 589.98 cm /Im4 Do Q q 0.96 0 0 15.36 366.48 589.98 cm /Im4 Do Q q 0.96 0 0 15.36 367.44 589.98 cm /Im4 Do Q q 0.96 0 0 15.36 352.08 574.6201 cm /Im4 Do Q q 0.96 0 0 15.36 353.04 574.6201 cm /Im4 Do Q q 0.96 0 0 15.36 354 574.6201 cm /Im4 Do Q q 0.96 0 0 15.36 354.96 574.6201 cm /Im4 Do Q q 0.96 0 0 15.36 355.92 574.6201 cm /Im4 Do Q q 0.96 0 0 15.36 356.88 574.6201 cm /Im4 Do Q q 0.96 0 0 15.36 357.84 574.6201 cm /Im4 Do Q q 0.96 0 0 15.36 358.8 574.6201 cm /Im4 Do Q q 0.96 0 0 15.36 359.76 574.6201 cm /Im4 Do Q q 0.96 0 0 15.36 360.72 574.6201 cm /Im4 Do Q q 0.96 0 0 15.36 361.68 574.6201 cm /Im4 Do Q q 0.96 0 0 15.36 362.64 574.6201 cm /Im4 Do Q q 0.96 0 0 15.36 363.6 574.6201 cm /Im4 Do Q q 0.96 0 0 15.36 364.56 574.6201 cm /Im4 Do Q q 0.96 0 0 15.36 365.52 574.6201 cm /Im4 Do Q q 0.96 0 0 15.36 366.48 574.6201 cm /Im4 Do Q q 0.96 0 0 15.36 367.44 574.6201 cm /Im4 Do Q q 0.96 0 0 15.36 352.08 559.2601 cm /Im4 Do Q q 0.96 0 0 15.36 353.04 559.2601 cm /Im4 Do Q q 0.96 0 0 15.36 354 559.2601 cm /Im4 Do Q q 0.96 0 0 15.36 354.96 559.2601 cm /Im4 Do Q q 0.96 0 0 15.36 355.92 559.2601 cm /Im4 Do Q q 0.96 0 0 15.36 356.88 559.2601 cm /Im4 Do Q q 0.96 0 0 15.36 357.84 559.2601 cm /Im4 Do Q q 0.96 0 0 15.36 358.8 559.2601 cm /Im4 Do Q q 0.96 0 0 15.36 359.76 559.2601 cm /Im4 Do Q q 0.96 0 0 15.36 360.72 559.2601 cm /Im4 Do Q q 0.96 0 0 15.36 361.68 559.2601 cm /Im4 Do Q q 0.96 0 0 15.36 362.64 559.2601 cm /Im4 Do Q q 0.96 0 0 15.36 363.6 559.2601 cm /Im4 Do Q q 0.96 0 0 15.36 364.56 559.2601 cm /Im4 Do Q q 0.96 0 0 15.36 365.52 559.2601 cm /Im4 Do Q q 0.96 0 0 15.36 366.48 559.2601 cm /Im4 Do Q q 0.96 0 0 15.36 367.44 559.2601 cm /Im4 Do Q q 0.96 0 0 15.36 352.08 543.9 cm /Im4 Do Q q 0.96 0 0 15.36 353.04 543.9 cm /Im4 Do Q q 0.96 0 0 15.36 354 543.9 cm /Im4 Do Q q 0.96 0 0 15.36 354.96 543.9 cm /Im4 Do Q q 0.96 0 0 15.36 355.92 543.9 cm /Im4 Do Q q 0.96 0 0 15.36 356.88 543.9 cm /Im4 Do Q q 0.96 0 0 15.36 357.84 543.9 cm /Im4 Do Q q 0.96 0 0 15.36 358.8 543.9 cm /Im4 Do Q q 0.96 0 0 15.36 359.76 543.9 cm /Im4 Do Q q 0.96 0 0 15.36 360.72 543.9 cm /Im4 Do Q q 0.96 0 0 15.36 361.68 543.9 cm /Im4 Do Q q 0.96 0 0 15.36 362.64 543.9 cm /Im4 Do Q q 0.96 0 0 15.36 363.6 543.9 cm /Im4 Do Q q 0.96 0 0 15.36 364.56 543.9 cm /Im4 Do Q q 0.96 0 0 15.36 365.52 543.9 cm /Im4 Do Q q 0.96 0 0 15.36 366.48 543.9 cm /Im4 Do Q q 0.96 0 0 15.36 367.44 543.9 cm /Im4 Do Q q 0.96 0 0 13.2 352.08 530.7 cm /Im21 Do Q q 0.96 0 0 13.2 353.04 530.7 cm /Im21 Do Q q 0.96 0 0 13.2 354 530.7 cm /Im21 Do Q q 0.96 0 0 13.2 354.96 530.7 cm /Im21 Do Q q 0.96 0 0 13.2 355.92 530.7 cm /Im21 Do Q q 0.96 0 0 13.2 356.88 530.7 cm /Im21 Do Q q 0.96 0 0 13.2 357.84 530.7 cm /Im21 Do Q q 0.96 0 0 13.2 358.8 530.7 cm /Im21 Do Q q 0.96 0 0 13.2 359.76 530.7 cm /Im21 Do Q q 0.96 0 0 13.2 360.72 530.7 cm /Im21 Do Q q 0.96 0 0 13.2 361.68 530.7 cm /Im21 Do Q q 0.96 0 0 13.2 362.64 530.7 cm /Im21 Do Q q 0.96 0 0 13.2 363.6 530.7 cm /Im21 Do Q q 0.96 0 0 13.2 364.56 530.7 cm /Im21 Do Q q 0.96 0 0 13.2 365.52 530.7 cm /Im21 Do Q q 0.96 0 0 13.2 366.48 530.7 cm /Im21 Do Q q 0.96 0 0 13.2 367.44 530.7 cm /Im21 Do Q Q 352.5 667 15.25 -135.625 re S 1.25 w 153.875 531.375 m 474.75 531.375 l S 0.25 w [1 1.5 ]0 d 153.875 562 m 474.75 562 l 153.875 592.5 m 474.75 592.5 l 153.875 623.125 m 474.75 623.125 l 153.875 653.5 m 474.75 653.5 l 153.875 684.125 m 474.75 684.125 l S BT 11 0 0 11 135.875 557.375 Tm (2)Tj 0 2.7727 TD (4)Tj 0 2.7841 TD (6)Tj 0 2.7614 TD (8)Tj -0.25 2.7841 TD (10)Tj -0.4205 1.5568 TD (TPS)Tj ET q 169.125 648.125 15.375 -116.75 re W* n q 0.96 0 0 15.36 183.12 632.22 cm /Im2 Do Q q 0.96 0 0 15.36 184.08 632.22 cm /Im2 Do Q q 0.96 0 0 15.36 183.12 616.86 cm /Im2 Do Q q 0.96 0 0 15.36 184.08 616.86 cm /Im2 Do Q q 0.96 0 0 15.36 183.12 601.5001 cm /Im2 Do Q q 0.96 0 0 15.36 184.08 601.5001 cm /Im2 Do Q q 0.96 0 0 15.36 183.12 586.14 cm /Im2 Do Q q 0.96 0 0 15.36 184.08 586.14 cm /Im2 Do Q q 0.96 0 0 15.36 183.12 570.78 cm /Im2 Do Q q 0.96 0 0 15.36 184.08 570.78 cm /Im2 Do Q q 0.96 0 0 15.36 183.12 555.42 cm /Im2 Do Q q 0.96 0 0 15.36 184.08 555.42 cm /Im2 Do Q q 0.96 0 0 15.36 183.12 540.0601 cm /Im2 Do Q q 0.96 0 0 15.36 184.08 540.0601 cm /Im2 Do Q q 0.96 0 0 9.36 183.12 530.7001 cm /Im22 Do Q q 0.96 0 0 9.36 184.08 530.7001 cm /Im22 Do Q Q []0 d 169.125 648.125 15.375 -116.75 re S BT 8 0 0 8 164.75 519 Tm [(LIBTP)-19639.6(FLOCK)]TJ 10 0 0 10 199.625 492.125 Tm [(Figure)-255(6:)-254.5(Single-User)-256.1(Performance)-285.3(Comparison.)]TJ /T1 1 Tf -13.025 -2.25 TD [()200()]TJ /TT2 1 Tf 0 -3.45 TD [(5.1.2.)-500(Multi-User)-266.8(Tests)]TJ /TT4 1 Tf 2.5 -1.5375 TD [(While)-306.6(the)-303.3(single-user)-312.3(tests)-297.2(form)-306.2(a)-293.6(basis)-287.5(for)-296.5(comparing)-298.6(LIBTP)-284.7(to)-284.7(other)-295.3(systems,)-283(our)-292(goal)-290.8(in)-284.7(multi-user)-289.6(testing)]TJ -2.5 -1.125 TD [(was)-432.3(to)-422.2(analyze)-434.3(its)-405.2(scalability.)-415.1(To)-414.2(this)-405.2(end,)-418.6(we)-421.5(have)-424.8(run)-417(the)-415.8(benchmark)-432.6(in)-409.7(three)-426.5(modes,)-414.2(the)-415.8(normal)-417.5(disk)-408(bound)]TJ T* (con)Tj /TT7 1 Tf 1.4438 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(guration)-355(\()]TJ /TT7 1 Tf 4.0205 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(gure)-359(seven\),)-365.1(a)-343.7(CPU)-329.7(bound)-337.5(con)]TJ /TT7 1 Tf 12.7047 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(guration)-342.5(\()]TJ /TT7 1 Tf 4.008 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(gure)-346.5(eight,)-338(READ-ONLY\),)-359.5(and)-343.7(lock)-340.8(contention)-341.3(bound)]TJ -24.4017 -1.125 TD (\()Tj /TT7 1 Tf 0.333 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(gure)-346.5(eight,)-338(NO_FSYNC\).)-586.5(Since)-340.8(the)-340.8(normal)-342.5(con)]TJ /TT7 1 Tf 19.7922 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(guration)-342.5(is)-333(completely)-344.6(disk)-333(bound)-337.5(\(each)-360.4(transaction)-337.8(requires)-341.8(a)]TJ -21.2375 -1.325 TD [(random)-295.3(read,)-304.3(a)-293.7(random)-295.3(write,)-295.3(and)-293.7(a)-293.7(sequential)-295.8(write)]TJ 7 0 0 7 281.375 376.75 Tm (4)Tj 10 0 0 10 284.875 372.75 Tm [(\))-292(w)0(e)-296.5(expect)-303.1(to)-284.7(see)-298.1(little)-279.5(performance)-322.8(improvement)-293(as)-279.5(the)-278.3(mul-)]TJ -21.55 -1.125 TD [(tiprogramming)-363.5(level)-369.1(increases.)-635.4(In)-367(fact,)]TJ /TT7 1 Tf 16.55 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(gure)-367(seven)-373.1(reveals)-381(that)-363(we)-371.5(are)-379.3(able)-372(to)-359.7(overlap)-364(CPU)-342.2(and)-356.2(disk)-345.5(utilization)]TJ -17.1062 -1.125 TD [(slightly)-374.5(producing)-395.3(approximately)-386.6(a)-381.2(10%)-379.5(performance)-410.3(improvement)-380.5(with)-372.2(two)-375(processes.)-643(After)-390.1(that)-375.5(point,)-369.3(perfor-)]TJ T* [(mance)-265.6(drops)-252.8(off,)-259(and)-256.2(at)-253.3(a)-256.2(multi-programming)-249.8(level)-256.6(of)-254.5(4,)-250(we)-259(are)-266.8(performing)-264(worse)-261.8(than)-253.3(in)-247.2(the)-253.3(single)-248.8(process)-263.5(case.)]TJ 2.5 -1.5375 TD [(Similar)-380.7(behavior)-401.5(was)-394.8(reported)-393.5(on)-375(the)-378.3(commercial)-392.8(relational)-386.6(database)-395.1(system)-372.2(using)-370.5(the)-378.3(same)-382.8(con)]TJ /TT7 1 Tf 40.1563 0 TD (Þ)Tj /TT4 1 Tf 0.5561 0 TD (guration.)Tj -43.2125 -1.125 TD [(The)-345.3(important)-336.8(conclusion)-342.5(to)-334.7(draw)-351(from)-343.7(this)-330.2(is)-333(that)-338(you)-337.5(cannot)-347(attain)-341.3(good)-337.5(multi-user)-339.6(scaling)-342.5(on)-337.5(a)-343.7(badly)-340.8(balanced)]TJ T* [(system.)-522.2(If)-284(multi-user)-277.2(performance)-310.3(on)-275(applications)-268(of)-267(this)-255.2(sort)-262.5(is)-258(important,)-261.8(one)-268.7(must)-255.2(have)-274.8(a)-268.7(separate)-287.1(logging)-256.8(device)]TJ T* [(and)-331.2(horizontally)-330.5(partition)-324.3(the)-328.3(database)-345.1(to)-309.7(allow)-315.8(a)-318.6(suf)]TJ /TT7 1 Tf 21.5972 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(ciently)-313(high)-309.7(degree)-335.5(of)-317(multiprogramming)-307.8(that)-313(group)-317(commit)]TJ -22.1533 -1.125 TD [(can)-262.3(amortize)-264.5(the)-253.3(cost)-251.7(of)-254.5(log)]TJ /TT7 1 Tf 11.3625 0 TD (ß)Tj /TT4 1 Tf 0.5562 0 TD (ushing.)Tj -9.4187 -1.5375 TD [(By)-283(using)-283(a)-293.7(very)-298.1(small)-283.5(database)-307.6(\(one)-298.1(that)-288(can)-299.8(be)-293.7(entirely)-295.8(cached)-312.1(in)-272.2(main)-275.5(memory\))-284.5(and)-281.2(read-only)-293.5(transactions,)]TJ -2.5 -1.125 TD [(we)-271.5(generated)-288.8(a)-268.7(CPU)-242.2(bound)-250(environment.)-508.3(By)-245.5(using)-245.5(the)-253.3(same)-257.8(small)-246(database,)-270.1(the)-253.3(complete)-260(TPCB)-236.5(transaction,)-262.8(and)-256.1(no)]TJ /TT2 1 Tf T* (fsync)Tj /TT4 1 Tf 2.225 0 TD [(\(2\))-446.5(on)-437.5(the)-440.8(log)-434.7(at)-440.8(commit,)-432.3(we)-446.5(created)-463.8(a)-443.7(lock)-440.8(contention)-428.8(bound)-425(environment.)-683.3(The)-432.8(small)-421(database)-445.1(used)-429.5(an)]TJ -2.225 -1.125 TD (account)Tj /TT7 1 Tf 3.4125 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-284.7(containing)-291.3(only)-284.7(1000)-287.5(records)-307.1(rather)-306(than)-290.8(the)-290.8(full)-286.3(1,000,000)-275(records)-294.6(and)-281.2(ran)-285.6(enough)-281.2(transactions)-286.1(to)-272.2(read)]TJ -3.9687 -1.125 TD [(the)-303.3(entire)-298.6(database)-307.6(into)-281.8(the)-290.8(buffer)-307.1(pool)-284.7(\(2000\))-296.5(before)-308.8(beginning)-288(measurements.)-304.8(The)-295.3(read-only)-306(transaction)-300.3(consisted)]TJ T* [(of)-304.5(three)-314(database)-320.1(reads)-315.1(\(from)-310.6(the)-303.3(1000)-300(record)-321.3(account)]TJ /TT7 1 Tf 22.35 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le,)-297.2(the)-303.3(100)-287.5(record)-308.8(teller)]TJ /TT7 1 Tf 9.7938 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le,)-284.7(and)-293.7(the)-290.8(10)-287.5(record)-308.8(branch)]TJ /TT7 1 Tf 11.6814 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD (le\).)Tj -45.4937 -1.125 TD [(Since)-328.3(no)-325(data)-334.5(were)-344.6(modi)]TJ /TT7 1 Tf 10.2182 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(ed)-319.3(and)-331.2(no)-325(history)-322.2(records)-344.6(were)-344.6(written,)-330(no)-325(log)-309.7(records)-332.1(were)-332.1(written.)-567.5(For)-310.8(the)-315.8(contention)]TJ -10.7743 -1.125 TD [(bound)-312.5(con)]TJ /TT7 1 Tf 4.2563 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(guration,)-317.5(we)-321.5(used)-317(the)-315.8(normal)-317.5(TPCB)-299(transaction)-325.3(\(against)-322(the)-303.3(small)-296(database\))-324.6(and)-306.1(disabled)-305(the)-303.3(log)]TJ /TT7 1 Tf 39.8 0 TD (ß)Tj /TT4 1 Tf 0.5562 0 TD (ush.)Tj -45.1686 -1.125 TD [(Figure)-251.7(eight)-250.5(shows)-249.5(both)-247.2(of)-254.5(these)-257.8(results.)]TJ 2.5 -1.5375 TD [(The)-282.8(read-only)-281(test)-261.3(indicates)-270.8(that)-263(we)-271.5(barely)-276.5(scale)-276.5(at)-265.8(all)-263(in)-259.7(the)-265.8(CPU)-254.7(bound)-262.5(case.)-529.3(The)-270.3(explanation)-272.5(for)-271.5(that)-263(is)-258(that)]TJ -2.5 -1.125 TD [(even)-362.3(with)-347.2(a)-356.2(single)-348.8(process,)-363.5(we)-359(are)-366.8(able)-359.5(to)-347.2(drive)-357.8(the)-353.3(CPU)-342.2(utilization)-345.3(to)-347.2(96%.)-604.5(As)-351.2(a)-343.7(result,)-340.8(that)-338(gives)-339.2(us)-335.8(very)-348.1(little)]TJ T* [(room)-364.2(for)-371.5(improvement,)-368(and)-368.7(it)-356.8(takes)-370.3(a)-368.7(multiprogramming)-357.8(level)-369.1(of)-367(four)-371.5(to)-359.7(approach)-385.4(100%)-367(CPU)-354.7(saturation.)-619.1(In)-354.5(the)]TJ T* [(case)-316.8(where)-319.6(we)-309(do)-300(perform)-316.8(writes,)-306.2(we)-309(are)-316.8(interested)-312.8(in)-297.2(detecting)-310(when)-309(lock)-303.3(contention)-303.8(becomes)-301.5(a)-293.7(dominant)-285.2(perfor-)]TJ T* [(mance)-290.6(factor.)-543.5(Contention)-268.2(will)-269.3(cause)-291.8(two)-275(phenomena;)-287.8(we)-284(will)-269.3(see)-285.6(transactions)-286.1(queueing)-284.5(behind)-278.3(frequently)-290.6(accessed)]TJ T* [(data,)-284.5(and)-281.2(we)-284(will)-269.3(see)-285.6(transaction)-275.3(abort)-270.3(rates)-274.8(increasing)-278.1(due)-268.7(to)-259.7(deadlock.)-528.1(Given)-268.7(that)-263(the)-265.8(branch)]TJ /TT7 1 Tf 38.4 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-259.7(contains)-267.5(only)-259.7(ten)]TJ /T1 1 Tf 8 0 0 8 69.375 92.625 Tm ()Tj /TT4 1 Tf 5 0 0 5 90.875 82.875 Tm (4)Tj 8 0 0 8 95.375 79.75 Tm [(Although)-253.4(the)-247.1(log)-253.4(is)-254.9(written)-245.6(sequentially,)-246.1(we)-240.2(do)-250(not)-253.4(get)-247.1(the)-247.1(bene)]TJ /TT7 1 Tf 25.3721 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(t)-247.1(o)0(f)-245.1(sequentiality)-249.5(since)-242.2(the)-247.1(log)-253.4(and)-243.7(database)-229.5(reside)-237.3(on)-250(the)-247.1(same)-242.2(disk.)]TJ ET endstream endobj 60 0 obj << /ProcSet [/PDF /Text /ImageB ] /Font << /TT2 4 0 R /TT4 5 0 R /TT7 7 0 R /T1 8 0 R >> /XObject << /Im1 32 0 R /Im2 33 0 R /Im4 35 0 R /Im8 38 0 R /Im13 61 0 R /Im14 62 0 R /Im15 63 0 R /Im16 64 0 R /Im18 65 0 R /Im19 66 0 R /Im20 67 0 R /Im21 68 0 R /Im22 69 0 R >> /ExtGState << /GS1 9 0 R >> >> endobj 71 0 obj << /Length 16965 >> stream 0 G 1 J 0 j 0.25 w 10 M []0 d /GS1 gs 1 i 398.375 535.625 m 398.375 533.375 l 398.375 533.375 m 398.375 534.5 l 398.375 534.5 m 399.5 534.5 l 399.5 534.5 m 397.25 534.5 l 410.75 538.5 m 410.75 536.375 l 410.75 536.375 m 410.75 537.5 l 410.75 537.5 m 411.875 537.5 l 411.875 537.5 m 409.625 537.5 l 423 551.25 m 423 549 l 423 549 m 423 550.125 l 423 550.125 m 424.125 550.125 l 424.125 550.125 m 421.875 550.125 l 435.375 553.25 m 435.375 551 l 435.375 551 m 435.375 552.125 l 435.375 552.125 m 436.5 552.125 l 436.5 552.125 m 434.25 552.125 l 447.625 553.25 m 447.625 551 l 447.625 551 m 447.625 552.125 l 447.625 552.125 m 448.75 552.125 l 448.75 552.125 m 446.5 552.125 l 460 563 m 460 560.75 l 460 560.75 m 460 561.875 l 460 561.875 m 461.125 561.875 l 461.125 561.875 m 458.875 561.875 l 472.25 553.375 m 472.25 551.125 l 472.25 551.125 m 472.25 552.25 l 472.25 552.25 m 473.375 552.25 l 473.375 552.25 m 471.125 552.25 l 484.625 556.625 m 484.625 554.375 l 484.625 554.375 m 484.625 555.5 l 484.625 555.5 m 485.75 555.5 l 485.75 555.5 m 483.5 555.5 l 496.875 582.125 m 496.875 580 l 496.875 580 m 496.875 581 l 496.875 581 m 498 581 l 498 581 m 495.75 581 l 509.25 606.125 m 509.25 604 l 509.25 604 m 509.25 605 l 509.25 605 m 510.375 605 l 510.375 605 m 508.125 605 l S 1.25 w 398.375 534.5 m 410.75 537.5 l 410.75 537.5 m 423 550.125 l 423 550.125 m 435.375 552.125 l 435.375 552.125 m 447.625 552.125 l 447.625 552.125 m 460 561.875 l 460 561.875 m 472.25 552.25 l 472.25 552.25 m 484.625 555.5 l 484.625 555.5 m 496.875 581 l 496.875 581 m 509.25 605 l S BT /TT2 1 Tf 6 0 0 6 511 602.5 Tm 0 g 0 Tc 0 Tw (SMALL)Tj ET 0.75 w 398.375 535.625 m 398.375 533.375 l 398.375 533.375 m 398.375 534.5 l 398.375 534.5 m 399.5 534.5 l 399.5 534.5 m 397.25 534.5 l 410.75 535.625 m 410.75 533.375 l 410.75 533.375 m 410.75 534.5 l 410.75 534.5 m 411.875 534.5 l 411.875 534.5 m 409.625 534.5 l 423 536.875 m 423 534.625 l 423 534.625 m 423 535.75 l 423 535.75 m 424.125 535.75 l 424.125 535.75 m 421.875 535.75 l 435.375 543.25 m 435.375 541 l 435.375 541 m 435.375 542.125 l 435.375 542.125 m 436.5 542.125 l 436.5 542.125 m 434.25 542.125 l 447.625 561.625 m 447.625 559.5 l 447.625 559.5 m 447.625 560.5 l 447.625 560.5 m 448.75 560.5 l 448.75 560.5 m 446.5 560.5 l 460 594.75 m 460 592.5 l 460 592.5 m 460 593.625 l 460 593.625 m 461.125 593.625 l 461.125 593.625 m 458.875 593.625 l 472.25 605 m 472.25 602.75 l 472.25 602.75 m 472.25 603.875 l 472.25 603.875 m 473.375 603.875 l 473.375 603.875 m 471.125 603.875 l 484.625 613.25 m 484.625 611 l 484.625 611 m 484.625 612.125 l 484.625 612.125 m 485.75 612.125 l 485.75 612.125 m 483.5 612.125 l 496.875 633.375 m 496.875 631.125 l 496.875 631.125 m 496.875 632.25 l 496.875 632.25 m 498 632.25 l 498 632.25 m 495.75 632.25 l 509.25 658.25 m 509.25 656 l 509.25 656 m 509.25 657.125 l 509.25 657.125 m 510.375 657.125 l 510.375 657.125 m 508.125 657.125 l S 0.25 w 398.375 534.5 m 410.75 534.5 l 410.75 534.5 m 423 535.75 l 423 535.75 m 435.375 542.125 l 435.375 542.125 m 447.625 560.5 l 447.625 560.5 m 460 593.625 l 460 593.625 m 472.25 603.875 l 472.25 603.875 m 484.625 612.125 l 484.625 612.125 m 496.875 632.25 l 496.875 632.25 m 509.25 657.125 l S BT 6 0 0 6 511 654.625 Tm (LARGE)Tj ET 1.25 w 386.125 534.5 m 509.25 534.5 l 386.125 534.5 m 386.125 681.25 l S 0.25 w [1 1.5 ]0 d 447.625 534.5 m 447.625 681.25 l 509.25 534.5 m 509.25 681.25 l 386.125 563.875 m 509.25 563.875 l S BT 9 0 0 9 374.125 560.125 Tm (25)Tj ET 386.125 593.125 m 509.25 593.125 l S BT 9 0 0 9 374.125 589.375 Tm (50)Tj ET 386.125 622.5 m 509.25 622.5 l S BT 9 0 0 9 374.125 618.75 Tm (75)Tj ET 386.125 651.875 m 509.25 651.875 l S BT 9 0 0 9 369.625 648.125 Tm (100)Tj ET 386.125 681.25 m 509.25 681.25 l S BT 9 0 0 9 369.625 677.5 Tm (125)Tj 4.5 -17.8194 TD (Multiprogramming)Tj -2.9167 0.6528 TD 6.4167 Tc [(05)402.8(1)6416.7(0)]TJ -2.9444 18.9583 TD 0 Tc [(Aborts)-250.1(per)-250.6(500)]TJ 0.5833 -0.8333 TD (transactions)Tj ET 0.75 w []0 d 254.625 624.25 m 254.625 622 l 254.625 622 m 254.625 623.125 l 254.625 623.125 m 255.75 623.125 l 255.75 623.125 m 253.5 623.125 l 265.625 622.25 m 265.625 620 l 265.625 620 m 265.625 621.125 l 265.625 621.125 m 266.75 621.125 l 266.75 621.125 m 264.5 621.125 l 276.625 624.375 m 276.625 622.125 l 276.625 622.125 m 276.625 623.25 l 276.625 623.25 m 277.75 623.25 l 277.75 623.25 m 275.5 623.25 l 287.625 643.125 m 287.625 640.875 l 287.625 640.875 m 287.625 642 l 287.625 642 m 288.75 642 l 288.75 642 m 286.5 642 l 298.5 651.5 m 298.5 649.25 l 298.5 649.25 m 298.5 650.375 l 298.5 650.375 m 299.625 650.375 l 299.625 650.375 m 297.5 650.375 l 309.5 647.375 m 309.5 645.125 l 309.5 645.125 m 309.5 646.25 l 309.5 646.25 m 310.625 646.25 l 310.625 646.25 m 308.375 646.25 l 320.5 647.375 m 320.5 645.125 l 320.5 645.125 m 320.5 646.25 l 320.5 646.25 m 321.625 646.25 l 321.625 646.25 m 319.375 646.25 l 331.5 646.875 m 331.5 644.625 l 331.5 644.625 m 331.5 645.75 l 331.5 645.75 m 332.625 645.75 l 332.625 645.75 m 330.375 645.75 l 342.5 647.875 m 342.5 645.625 l 342.5 645.625 m 342.5 646.75 l 342.5 646.75 m 343.625 646.75 l 343.625 646.75 m 341.375 646.75 l 353.5 648.25 m 353.5 646 l 353.5 646 m 353.5 647.125 l 353.5 647.125 m 354.5 647.125 l 354.5 647.125 m 352.375 647.125 l S 1.25 w 254.625 623.125 m 265.625 621.125 l 265.625 621.125 m 276.625 623.25 l 276.625 623.25 m 287.625 642 l 287.625 642 m 298.5 650.375 l 298.5 650.375 m 309.5 646.25 l 309.5 646.25 m 320.5 646.25 l 320.5 646.25 m 331.5 645.75 l 331.5 645.75 m 342.5 646.75 l 342.5 646.75 m 353.5 647.125 l S BT 6 0 0 6 335.625 637.75 Tm (READ-ONLY)Tj ET 0.75 w 254.625 609 m 254.625 606.75 l 254.625 606.75 m 254.625 607.875 l 254.625 607.875 m 255.75 607.875 l 255.75 607.875 m 253.5 607.875 l 265.625 587 m 265.625 584.75 l 265.625 584.75 m 265.625 585.875 l 265.625 585.875 m 266.75 585.875 l 266.75 585.875 m 264.5 585.875 l 276.625 560.25 m 276.625 558 l 276.625 558 m 276.625 559.125 l 276.625 559.125 m 277.75 559.125 l 277.75 559.125 m 275.5 559.125 l 287.625 558 m 287.625 555.75 l 287.625 555.75 m 287.625 556.875 l 287.625 556.875 m 288.75 556.875 l 288.75 556.875 m 286.5 556.875 l 298.5 558.125 m 298.5 556 l 298.5 556 m 298.5 557.125 l 298.5 557.125 m 299.625 557.125 l 299.625 557.125 m 297.5 557.125 l 309.5 550.375 m 309.5 548.125 l 309.5 548.125 m 309.5 549.25 l 309.5 549.25 m 310.625 549.25 l 310.625 549.25 m 308.375 549.25 l 320.5 552.75 m 320.5 550.5 l 320.5 550.5 m 320.5 551.625 l 320.5 551.625 m 321.625 551.625 l 321.625 551.625 m 319.375 551.625 l 331.5 554.125 m 331.5 551.875 l 331.5 551.875 m 331.5 553 l 331.5 553 m 332.625 553 l 332.625 553 m 330.375 553 l 342.5 544.5 m 342.5 542.25 l 342.5 542.25 m 342.5 543.375 l 342.5 543.375 m 343.625 543.375 l 343.625 543.375 m 341.375 543.375 l 353.5 541.5 m 353.5 539.25 l 353.5 539.25 m 353.5 540.375 l 353.5 540.375 m 354.5 540.375 l 354.5 540.375 m 352.375 540.375 l S 0.25 w 254.625 607.875 m 265.625 585.875 l 265.625 585.875 m 276.625 559.125 l 276.625 559.125 m 287.625 556.875 l 287.625 556.875 m 298.5 557.125 l 298.5 557.125 m 309.5 549.25 l 309.5 549.25 m 320.5 551.625 l 320.5 551.625 m 331.5 553 l 331.5 553 m 342.5 543.375 l 342.5 543.375 m 353.5 540.375 l S BT 6 0 0 6 344.875 542.375 Tm (NO-FSYNC)Tj ET 1.25 w 243.625 534.5 m 353.5 534.5 l 243.625 534.5 m 243.625 681.25 l S 0.25 w [1 1.5 ]0 d 298.5 534.5 m 298.5 681.25 l 353.5 534.5 m 353.5 681.25 l 243.625 563.875 m 353.5 563.875 l S BT 9 0 0 9 230.25 560.125 Tm (40)Tj ET 243.625 593.125 m 353.5 593.125 l S BT 9 0 0 9 230.25 589.375 Tm (80)Tj ET 243.625 622.5 m 353.5 622.5 l S BT 9 0 0 9 225.75 618.75 Tm (120)Tj ET 243.625 651.875 m 353.5 651.875 l S BT 9 0 0 9 225.75 648.125 Tm (160)Tj ET 243.625 681.25 m 353.5 681.25 l S BT 9 0 0 9 225.75 677.5 Tm (200)Tj 3.9167 -17.8194 TD (Multiprogramming)Tj -3.3889 18.5556 TD [(in)-249.3(TPS)]TJ -1.1528 0.9861 TD (Throughput)Tj 2.3611 -18.4583 TD (0)Tj 6.0972 -0.1667 TD 5.3611 Tc [(51)5361.1(0)]TJ 6 0 0 6 209.875 562.875 Tm 0 Tc (LIBTP)Tj ET 0.75 w []0 d 104.625 664.625 m 104.625 662.5 l 104.625 662.5 m 104.625 663.625 l 104.625 663.625 m 105.75 663.625 l 105.75 663.625 m 103.5 663.625 l 116.125 682.25 m 116.125 680.125 l 116.125 680.125 m 116.125 681.25 l 116.125 681.25 m 117.25 681.25 l 117.25 681.25 m 115 681.25 l 127.625 674.625 m 127.625 672.375 l 127.625 672.375 m 127.625 673.5 l 127.625 673.5 m 128.75 673.5 l 128.75 673.5 m 126.5 673.5 l 139.125 661.625 m 139.125 659.375 l 139.125 659.375 m 139.125 660.5 l 139.125 660.5 m 140.25 660.5 l 140.25 660.5 m 138 660.5 l 150.625 627.75 m 150.625 625.5 l 150.625 625.5 m 150.625 626.625 l 150.625 626.625 m 151.75 626.625 l 151.75 626.625 m 149.5 626.625 l 162.125 596.125 m 162.125 593.875 l 162.125 593.875 m 162.125 595 l 162.125 595 m 163.25 595 l 163.25 595 m 161 595 l 173.625 583.875 m 173.625 581.625 l 173.625 581.625 m 173.625 582.75 l 173.625 582.75 m 174.75 582.75 l 174.75 582.75 m 172.5 582.75 l 185.125 579.625 m 185.125 577.375 l 185.125 577.375 m 185.125 578.5 l 185.125 578.5 m 186.25 578.5 l 186.25 578.5 m 184 578.5 l 196.625 563.5 m 196.625 561.25 l 196.625 561.25 m 196.625 562.375 l 196.625 562.375 m 197.75 562.375 l 197.75 562.375 m 195.5 562.375 l 208.125 566.5 m 208.125 564.25 l 208.125 564.25 m 208.125 565.375 l 208.125 565.375 m 209.125 565.375 l 209.125 565.375 m 207 565.375 l S 1.25 w 104.625 663.625 m 116.125 681.25 l 116.125 681.25 m 127.625 673.5 l 127.625 673.5 m 139.125 660.5 l 139.125 660.5 m 150.625 626.625 l 150.625 626.625 m 162.125 595 l 162.125 595 m 173.625 582.75 l 173.625 582.75 m 185.125 578.5 l 185.125 578.5 m 196.625 562.375 l 196.625 562.375 m 208.125 565.375 l 93.125 534.5 m 208.125 534.5 l 93.125 534.5 m 93.125 681.25 l S 0.25 w [1 1.5 ]0 d 150.625 534.5 m 150.625 681.25 l 208.125 534.5 m 208.125 681.25 l 93.125 571.25 m 208.125 571.25 l S BT 9 0 0 9 84.125 567.5 Tm (3)Tj ET 93.125 607.875 m 208.125 607.875 l S BT 9 0 0 9 84.125 604.125 Tm (5)Tj ET 93.125 644.5 m 208.125 644.5 l S BT 9 0 0 9 84.125 640.75 Tm (8)Tj ET 93.125 681.25 m 208.125 681.25 l S BT 9 0 0 9 79.625 677.5 Tm (10)Tj 3.7222 -17.8194 TD (Multiprogramming)Tj -3.9306 18.7222 TD [(in)-249.3(TPS)]TJ -0.6528 0.8194 TD (Throughput)Tj 2.1944 -18.8889 TD 5.9306 Tc [(05)416.7(1)5930.6(0)]TJ 8 0 0 8 81.875 486.875 Tm 0 Tc [(Figure)-558.1(7:)-542(Multi-user)-539.1(Performance.)]TJ /TT4 1 Tf 0 -1.4063 TD [(Since)-434.6(the)-434.6(con)]TJ /TT7 1 Tf 5.7563 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(guration)-433.1(is)-442.4(completely)]TJ -6.3125 -1.4063 TD [(disk)-442.4(bound,)-437.5(we)-427.7(see)-410.6(only)-425.3(a)-415.5(small)-427.2(im-)]TJ T* [(provement)-551.8(by)-562.5(adding)-559.6(a)-540.5(second)-535.6(pro-)]TJ T* [(cess.)-1115.2(Adding)-625(any)-618.7(more)-601.6(concurrent)]TJ T* [(processes)-543(causes)-546.4(performance)-510.3(degra-)]TJ T* (dation.)Tj /TT2 1 Tf 19.875 8.4375 TD [(Figure)-636.2(8:)-635.7(Multi-user)-617.2(Performance)]TJ 0 -1.4063 TD [(on)-412.6(a)-406.3(small)-409.7(database.)]TJ /TT4 1 Tf 9.75 0 TD [(With)-391.1(one)-384.3(pro-)]TJ -9.75 -1.4063 TD [(cess,)-396.5(we)-380.9(are)-373(driving)-392.6(the)-387.7(CPU)-398.4(at)-387.7(96%)]TJ T* [(utilization)-445.3(leaving)-416(little)-432.6(room)-420.4(for)-412.1(im-)]TJ T* [(provement)-583(as)-573.2(the)-575.2(multiprogramming)]TJ T* [(level)-619.1(increases.)-851.1(In)-620.1(the)-622.1(NO-FSYNC)]TJ T* [(case,)-357.4(lock)-356.4(contention)-356.9(degrades)-336.9(perfor-)]TJ T* [(mance)-359.4(as)-370.1(soon)-376.5(as)-370.1(a)-368.7(second)-363.8(process)-360.3(is)]TJ T* (added.)Tj /TT2 1 Tf 19.875 11.25 TD [(Figure)-386.2(9:)-370.1(Abort)-366.7(rates)-358.9(on)-381.3(the)-370.1(TPCB)]TJ 0 -1.4063 TD (Benchmark.)Tj /TT4 1 Tf 6.0937 0 TD [(The)-585.9(abort)-585.9(rate)-579.6(climbs)]TJ -6.0937 -1.4063 TD [(more)-554.7(quickly)-563(for)-552.7(the)-559.6(large)-532.7(database)]TJ T* [(test)-564.4(since)-554.7(processes)-543(are)-544.9(descheduled)]TJ T* [(more)-1226.6(frequently,)-1218.8(allowing)-1219.2(more)]TJ T* [(processes)-230.5(to)-253.4(vie)-247.1(for)-240.2(the)-247.1(same)-242.2(locks.)]TJ /T1 1 Tf 10 0 0 10 69.375 381.5 Tm [()200()]TJ /TT4 1 Tf 0 -3.45 TD [(records,)-307.1(we)-296.5(expect)-303.1(contention)-291.3(to)-284.7(become)-303.1(a)-293.7(factor)-306(quickly)-288(and)-293.7(the)-290.8(NO-FSYNC)-286.5(line)-288(in)]TJ /TT7 1 Tf 34.9125 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(gure)-279.5(eight)-275.5(demonstrates)-286.1(this)]TJ -35.4687 -1.125 TD [(dramatically.)-589.9(Each)-339(additional)-326(process)-338.5(causes)-340.1(both)-322.2(more)-332.8(waiting)-313(and)-318.7(more)-320.3(deadlocking.)-575.3(Figure)-314.2(nine)-315.8(shows)-312(that)-313(in)]TJ T* [(the)-353.3(small)-346(database)-370.1(case)-354.3(\(SMALL\),)-344.8(waiting)-338(is)-333(the)-340.8(dominant)-335.2(cause)-354.3(of)-342(declining)-341.3(performance)-372.7(\(the)-345.3(number)-345.3(of)-342(aborts)]TJ T* [(increases)-372.9(less)-350(steeply)-355(than)-353.3(the)-353.3(performance)-385.3(drops)-352.8(off)-359(in)]TJ /TT7 1 Tf 23.3875 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(gure)-354.5(eight\),)-355(while)-353.3(in)-347.2(the)-353.3(large)-364(database)-370.1(case)-354.3(\(LARGE\),)]TJ -23.9437 -1.125 TD [(deadlocking)-262.8(contributes)-256.6(more)-257.8(to)-247.2(the)-253.3(declining)-253.8(performance.)]TJ 2.5 -1.5375 TD [(Deadlocks)-291.8(are)-291.8(more)-282.8(likely)-272.7(to)-272.2(occur)-291.8(in)-272.2(the)-265.8(LARGE)-267(test)-261.3(than)-265.8(in)-259.7(the)-265.8(SMALL)-260.8(test)-261.3(because)-285.4(there)-276.5(are)-279.3(more)-270.3(oppor-)]TJ -2.5 -1.125 TD [(tunities)-293.2(to)-297.2(wait.)-303.3(In)-304.5(the)-303.3(SMALL)-298.3(case,)-316.8(processes)-318(never)-304.3(do)-287.5(I/O)-292(and)-293.7(are)-304.3(less)-287.5(likely)-285.2(to)-284.7(be)-293.7(descheduled)-307.6(during)-289.2(a)-293.7(transac-)]TJ T* [(tion.)-506.8(In)-267(the)-265.8(LARGE)-267(case,)-279.3(processes)-280.5(will)-256.8(frequently)-278.1(be)-268.7(descheduled)-282.6(since)-270.3(they)-265.8(have)-274.8(to)-259.7(perform)-279.3(I/O.)-517(This)-259.7(provides)-256.2(a)]TJ T* [(window)-302.8(where)-319.6(a)-306.2(second)-310.6(process)-313.5(can)-312.3(request)-312.3(locks)-301.7(on)-287.5(already)-307.6(locked)-297(pages,)-298.1(thus)-283(increasing)-303.1(the)-290.8(likelihood)-282.3(of)-292(build-)]TJ T* [(ing)-247.2(up)-250(long)-247.2(chains)-257.8(of)-254.5(waiting)-250.5(processes.)-518(Eventually,)-255.5(this)-242.7(leads)-257.8(to)-247.2(deadlock.)]TJ /TT2 1 Tf 0 -2.325 TD [(5.2.)-500(The)-245.5(OO1)-244.3(Benchmark)]TJ /TT4 1 Tf 2.5 -1.5375 TD [(The)-295.3(TPCB)-274(benchmark)-307.6(described)-306(in)-284.7(the)-290.8(previous)-293.6(section)-292.5(measures)-304.3(performance)-322.8(under)-298.1(a)-293.7(conventional)-285(transac-)]TJ -2.5 -1.125 TD [(tion)-331.8(processing)-348.1(workload.)-598.1(Other)-348.1(application)-344.6(domains,)-336.3(such)-342(as)-342(computer-aided)-362.6(design,)-339.2(have)-349.8(substantially)-332.3(different)]TJ T* [(access)-333.8(patterns.)-572(In)-317(order)-327.6(to)-309.7(measure)-331(the)-315.8(performance)-347.8(of)-304.5(LIBTP)-297.2(under)-310.6(workloads)-309(of)-304.5(this)-292.7(type,)-303.3(we)-309(implemented)-304.3(the)]TJ T* [(OO1)-255.7(benchmark)-270.1(described)-268.5(in)-247.2([CATT91].)]TJ 2.5 -1.5375 TD [(The)-357.8(database)-370.1(models)-348.8(a)-343.7(set)-339.2(of)-342(electronics)-356.4(components)-342.5(with)-334.7(connections)-348.6(among)-340.8(them.)-588(One)-346.5(table)-344.1(stores)-342(parts)]TJ -2.5 -1.125 TD [(and)-318.7(another)-326.5(stores)-317(connections.)-573.6(There)-331(are)-329.3(three)-326.5(connections)-311.1(originating)-299.3(at)-303.3(any)-306.2(given)-303.3(part.)-557.8(Ninety)-303.3(percent)-320.1(of)-304.5(these)]TJ T* [(connections)-286.1(are)-291.8(to)-272.2(nearby)-291.8(parts)-281.2(\(those)-281.2(with)-272.2(nearby)]TJ /TT6 1 Tf 20.65 0 TD (ids)Tj /TT4 1 Tf 1.1625 0 TD [(\))-267(t)0(o)-259.7(model)-263(the)-265.8(spatial)-264.6(locality)-263.5(often)-270.3(exhibited)-266.3(in)-259.7(CAD)-263.7(applica-)]TJ -21.8125 -1.125 TD [(tions.)-605.2(Ten)-370.3(percent)-370.1(of)-354.5(the)-353.3(connections)-361.1(are)-366.8(randomly)-355(distributed)-347.7(among)-353.3(all)-350.5(other)-357.8(parts)-356.1(in)-347.2(the)-353.3(database.)-620.1(Every)-362.3(part)]TJ T* [(appears)-371.3(exactly)-362.8(three)-364(times)-346(in)-347.2(the)]TJ /TT6 1 Tf 14.25 0 TD (from)Tj /TT7 1 Tf 2.2375 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(eld)-334.7(of)-342(a)-343.7(connection)-350.3(record,)-358.8(and)-343.7(zero)-354.3(or)-342(more)-345.3(times)-333.5(in)-334.7(the)]TJ /TT6 1 Tf 24.0313 0 TD (to)Tj /TT7 1 Tf 1.1125 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(eld.)-584.7(Parts)]TJ -42.7437 -1.125 TD (have)Tj /TT6 1 Tf 2.15 0 TD (x)Tj /TT4 1 Tf 0.7 0 TD (and)Tj /TT6 1 Tf 1.7 0 TD (y)Tj /TT4 1 Tf 0.7 0 TD [(locations)-252.1(set)-251.7(randomly)-255(in)-247.2(an)-256.2(appropriate)-271.8(range.)]TJ ET endstream endobj 72 0 obj << /ProcSet [/PDF /Text ] /Font << /TT2 4 0 R /TT4 5 0 R /TT6 6 0 R /TT7 7 0 R /T1 8 0 R >> /ExtGState << /GS1 9 0 R >> >> endobj 74 0 obj << /Length 10607 >> stream BT /TT4 1 Tf 10 0 0 10 94.375 713.25 Tm 0 g /GS1 gs 0 Tc 0 Tw [(The)-257.8(intent)-247.7(of)-254.5(OO1)-255.7(is)-245.5(to)-247.2(measure)-268.5(the)-253.3(overall)-261.1(cost)-251.7(of)-254.5(a)-256.1(query)-260.7(mix)-244.3(characteristic)-282.9(of)-254.5(engineering)-267.3(database)-270.1(applica-)]TJ -2.5 -1.125 TD [(tions.)-492.7(There)-268.5(are)-266.8(three)-264(tests:)]TJ /T1 1 Tf 1 -1.5375 TD ()Tj /TT6 1 Tf 1.5 0 TD (Lookup)Tj /TT4 1 Tf 3.3375 0 TD [(generates)-362.1(1,000)-337.5(random)-345.3(part)]TJ /TT6 1 Tf 12.025 0 TD (ids)Tj /TT4 1 Tf 1.1625 0 TD [(,)-337.5(fetches)-343.5(the)-328.3(corresponding)-341.8(parts)-331.2(from)-331.1(the)-328.3(database,)-345.1(and)-331.2(calls)-330(a)-331.2(null)]TJ -16.525 -1.125 TD [(procedure)-277.4(in)-247.2(the)-253.3(host)-245.5(programming)-256.6(language)-265.6(with)-247.2(the)-253.3(parts’)]TJ /TT6 1 Tf 24.3 0 TD (x)Tj /TT4 1 Tf 0.7 0 TD (and)Tj /TT6 1 Tf 1.7 0 TD (y)Tj /TT4 1 Tf 0.7 0 TD (positions.)Tj /T1 1 Tf -28.9 -1.5375 TD ()Tj /TT6 1 Tf 1.5 0 TD (Traverse)Tj /TT4 1 Tf 3.9 0 TD [(retrieves)-357.6(a)-343.7(random)-345.3(part)-345.3(from)-343.6(the)-340.8(database)-357.6(and)-343.7(follows)-337.5(connections)-348.6(from)-343.7(it)-331.8(to)-322.2(other)-332.8(parts.)-581.2(Each)-339(of)]TJ -3.9 -1.125 TD [(those)-289.2(parts)-293.7(is)-283(retrieved,)-309.3(and)-293.7(all)-288(connections)-298.6(from)-293.7(it)-269.3(followed.)-532.8(This)-272.2(procedure)-302.4(is)-270.5(repeated)-301.3(depth-)]TJ /TT7 1 Tf 38.7297 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(rst)-276.7(for)-284(seven)]TJ -39.2858 -1.125 TD [(hops)-298.3(from)-306.2(the)-303.3(original)-302.1(part,)-307.8(for)-309(a)-306.2(total)-297.7(of)-304.5(3280)-300(parts.)-556.2(Backward)-308.8(traversal)-307.6(also)-289.2(exists,)-284.7(and)-293.7(follows)-287.5(all)-288(connec-)]TJ T* [(tions)-242.7(into)-244.3(a)-256.2(given)-253.3(part)-257.8(to)-247.2(their)-255(origin.)]TJ /T1 1 Tf -1.5 -1.5375 TD ()Tj /TT6 1 Tf 1.5 0 TD (Insert)Tj /TT4 1 Tf 2.5875 0 TD [(adds)-254.5(100)-250(new)-259(parts)-256.2(and)-256.2(their)-255(connections.)]TJ -2.5875 -1.5375 TD [(The)-420.3(benchmark)-432.6(is)-408(single-user,)-424.8(but)-409.7(multi-user)-414.7(access)-433.8(controls)-415.8(\(locking)-405(and)-406.2(transaction)-412.8(protection\))-412.8(must)-392.7(be)]TJ -2.5 -1.125 TD [(enforced.)-539.9(It)-264.2(is)-258(designed)-270.3(to)-259.7(be)-268.7(run)-267(on)-262.5(a)-268.7(database)-282.6(with)-259.7(20,000)-262.5(parts,)-268.7(and)-268.7(on)-262.5(one)-256.1(with)-247.2(200,000)-250(parts.)-506.2(Because)-268.5(we)-259(have)]TJ T* (insuf)Tj /TT7 1 Tf 2 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(cient)-250.5(disk)-245.5(space)-266.8(for)-259(the)-253.3(larger)-268.5(database,)-270.1(we)-259(report)-262.3(results)-251.7(only)-247.2(for)-259(the)-253.3(20,000)-250(part)-257.8(database.)]TJ /TT2 1 Tf -2.5562 -2.325 TD [(5.2.1.)-500(Implementation)]TJ /TT4 1 Tf 2.5 -1.5375 TD [(The)-507.8(LIBTP)-497.2(implementation)-498.6(of)-504.5(OO1)-505.7(uses)-502.8(the)-490.8(TCL)-486.3([OUST90])-497.7(interface)-515.4(described)-506(earlier.)-759.3(The)-495.3(backend)]TJ -2.5 -1.125 TD [(accepts)-282.6(commands)-267.5(over)-273.1(an)-268.7(IP)-260.8(socket)-270.3(and)-268.7(performs)-277.6(the)-265.8(requested)-281(database)-282.6(actions.)-517.5(The)-257.8(frontend)-262.3(opens)-254.5(and)-256.1(executes)]TJ T* [(a)-343.7(TCL)-336.3(script.)-590.8(This)-334.7(script)-340.8(contains)-342.5(database)-357.6(accesses)-363.3(interleaved)-358.1(with)-334.7(ordinary)-349.8(program)-337.3(control)-330(statements.)-578.8(Data-)]TJ T* [(base)-260.6(commands)-255(are)-266.8(submitted)-243.2(to)-247.2(the)-253.3(backend)-268.5(and)-256.2(results)-251.7(are)-266.8(bound)-250(to)-247.2(program)-262.3(variables.)]TJ 2.5 -1.5375 TD [(The)-295.3(parts)-293.7(table)-294.1(was)-294.8(stored)-293.7(as)-292(a)-281.2(B-tree)-289(indexed)-284.5(by)]TJ /TT6 1 Tf 20.275 0 TD (id)Tj /TT4 1 Tf 0.775 0 TD [(.)-525(The)-282.8(connection)-287.8(table)-281.6(was)-282.3(stored)-281.2(as)-279.5(a)-281.2(set)-276.7(of)]TJ /TT7 1 Tf 18.4125 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD (xed-length)Tj -42.5187 -1.125 TD [(records)-419.6(using)-395.5(the)-403.3(4.4BSD)-392.2(recno)-416.8(access)-421.3(method.)-650.5(In)-404.5(addition,)-397.7(two)-387.5(B-tree)-401.5(indices)-392.5(were)-407.1(maintained)-394.6(on)-387.5(connection)]TJ T* [(table)-269.1(entries.)-522(One)-271.5(index)-253.3(mapped)-259.5(the)]TJ /TT6 1 Tf 14.9625 0 TD (from)Tj /TT7 1 Tf 2.1375 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(eld)-247.2(to)-247.2(a)-256.2(connection)-262.8(record)-271.3(number,)-257.8(and)-256.2(the)-253.3(other)-257.8(mapped)-259.5(the)]TJ /TT6 1 Tf 24.6188 0 TD (to)Tj /TT7 1 Tf 1.025 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(eld)-247.2(to)-247.2(a)]TJ -43.8561 -1.125 TD [(connection)-325.3(record)-333.8(number.)-570.3(These)-324.8(indices)-305(support)-300(fast)-306.2(lookups)-295.5(on)-300(connections)-311.1(in)-297.2(both)-297.2(directions.)-556.6(For)-298.3(the)-303.3(traversal)]TJ T* [(tests,)-322.2(the)-328.3(frontend)-337.3(does)-329.5(an)-318.7(index)-315.8(lookup)-309.7(to)-309.7(discover)-324.8(the)-315.8(connected)-334.3(part’s)]TJ /TT6 1 Tf 30 0 TD (id)Tj /TT4 1 Tf 0.775 0 TD [(,)-312.5(and)-318.7(then)-315.8(does)-317(another)-326.5(lookup)-309.7(to)-309.7(fetch)]TJ -30.775 -1.125 TD [(the)-253.3(part)-257.8(itself.)]TJ /TT2 1 Tf 0 -2.325 TD [(5.2.2.)-500(Performance)-285.3(Measurements)-274.1(for)-260.6(OO1)]TJ /TT4 1 Tf 2.5 -1.5375 TD [(We)-274.8(compare)-282.6(LIBTP’s)-262.5(OO1)-268.2(performance)-297.8(to)-247.2(that)-250.5(reported)-268.5(in)-247.2([CATT91].)-510.6(Those)-256.2(results)-251.7(were)-269.6(collected)-266.1(on)-250(a)-256.2(Sun)]TJ -2.5 -1.125 TD [(3/280)-272.2(\(25)-279.5(MHz)-282.3(MC68020\))-273.3(with)-272.2(16)-275(MBytes)-270.5(of)-279.5(memory)-280(and)-281.2(two)-275(Hitachi)-269.1(892MByte)-259.7(disks)-256.4(\(15)-267(ms)-258(average)-291.6(seek)-273.1(time\))]TJ T* [(behind)-253.3(an)-256.2(SMD-4)-249.5(controller.)-512.8(Frontends)-250(ran)-260.6(on)-250(an)-256.2(8MByte)-247.2(Sun)-243.8(3/260.)]TJ 2.5 -1.5375 TD [(In)-279.5(order)-290.1(to)-272.2(measure)-293.5(performance)-310.3(on)-275(a)-281.2(machine)-287.8(of)-279.5(roughly)-276.7(equivalent)-285(processor)-293(power,)-288.5(we)-284(ran)-273.1(one)-268.7(set)-264.2(of)-267(tests)]TJ -2.5 -1.125 TD [(on)-387.5(a)-393.7(standalone)-398.6(MC68030-based)-384(HP300)-371.7(\(33MHz)-386.8(MC68030\).)-623.3(The)-382.8(database)-395.1(was)-382.3(stored)-381.1(on)-375(a)-381.2(300MByte)-372.2(HP7959)]TJ T* [(SCSI)-250.2(disk)-258(\(17)-267(ms)-245.5(average)-279.1(seek)-260.6(time\).)-502.1(Since)-253.3(this)-242.7(machine)-262.8(is)-245.5(not)-247.2(connected)-271.8(to)-247.2(a)-256.2(network,)-260.6(we)-259(ran)-260.6(local)-256.6(tests)-247.2(where)-269.6(the)]TJ T* [(frontend)-362.3(and)-356.2(backend)-368.5(run)-354.5(on)-350(the)-353.3(same)-345.3(machine.)-600.3(We)-349.8(compare)-357.6(these)-345.3(measurements)-354.8(with)-334.7(Cattell’s)-336.8(local)-344.1(Sun)-331.3(3/280)]TJ T* (numbers.)Tj 2.5 -1.5375 TD [(Because)-368.5(the)-353.3(benchmark)-370.1(requires)-366.8(remote)-361.1(access,)-371.3(we)-359(ran)-360.6(another)-364(set)-351.7(of)-354.5(tests)-347.2(on)-337.5(a)-343.7(DECstation)-333.5(5000/200)-334.7(with)]TJ -2.5 -1.125 TD [(32M)-323.3(of)-329.5(memory)-330(running)-326.7(Ultrix)-323.8(V4.0)-327.8(and)-331.2(a)-331.2(DEC)-325(1GByte)-326.7(RZ57)-309.7(SCSI)-300.2(disk.)-558(We)-324.8(compare)-332.6(the)-315.8(local)-319.1(performance)-347.8(of)]TJ T* [(OO1)-293.2(on)-287.5(the)-290.8(DECstation)-283.5(to)-284.7(its)-267.7(remote)-286.1(performance.)-560.3(For)-273.3(the)-278.3(remote)-286.1(case,)-291.8(we)-284(ran)-285.6(the)-278.3(frontend)-287.3(on)-275(a)-281.2(DECstation)-271(3100)]TJ T* [(with)-247.2(16)-250(MBytes)-245.5(of)-254.5(main)-250.5(memory.)]TJ 2.5 -1.5375 TD [(The)-257.8(databases)-268.5(tested)-255(in)-247.2([CATT91])-260.6(are)]TJ /T1 1 Tf -1.5 -1.5375 TD ()Tj /TT4 1 Tf 1.5 0 TD [(INDEX,)-264.6(a)-256.2(highly-optimized)-249.8(access)-271.3(method)-250.5(package)-274.6(developed)-265.6(at)-253.3(Sun)-243.9(Microsystems.)]TJ /T1 1 Tf -1.5 -1.5375 TD ()Tj /TT4 1 Tf 1.5 0 TD [(OODBMS,)-246.2(a)-256.2(beta)-259.5(release)-274.6(of)-254.5(a)-256.2(commercial)-267.8(object-oriented)-272.3(database)-270.1(management)-266.1(system.)]TJ /T1 1 Tf -1.5 -1.5375 TD ()Tj /TT4 1 Tf 1.5 0 TD [(RDBMS,)-261(a)-268.7(UNIX-based)-290.6(commercial)-280.3(relational)-274.1(data)-272(manager)-282.6(at)-265.8(production)-267.5(release.)-537.1(The)-270.3(OO1)-268.2(implementation)]TJ 0 -1.125 TD [(used)-254.5(embedded)-265.6(SQL)-248.3(in)-247.2(C.)-495.5(Stored)-251.7(procedures)-275.8(were)-269.6(de)]TJ /TT7 1 Tf 21.7188 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(ned)-256.2(to)-247.2(reduce)-272.9(client-server)-277.9(traf)]TJ /TT7 1 Tf 12.3252 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD (c.)Tj -35.1563 -1.5375 TD [(Table)-461.1(two)-450(shows)-449.5(the)-453.3(measurements)-467.3(from)-456.2([CATT91])-460.6(and)-456.2(LIBTP)-447.2(for)-459(a)-456.2(local)-456.6(test)-448.8(on)-437.5(the)-440.8(MC680x0-based)]TJ -2.5 -1.125 TD [(hardware.)-530.3(All)-247.2(caches)-273(are)-266.8(cleared)-276.3(before)-271.3(each)-268.5(test.)-498.8(All)-247.2(times)-246(are)-266.8(in)-247.2(seconds.)]TJ 2.5 -1.5375 TD [(Table)-286.1(two)-275(shows)-274.5(that)-275.5(LIBTP)-272.2(outperforms)-274.8(the)-265.8(commercial)-280.3(relational)-274.1(system,)-259.7(but)-259.7(is)-258(slower)-271.5(than)-265.8(OODBMS)-258.7(and)]TJ -2.5 -1.125 TD [(INDEX.)-602.1(Since)-340.8(the)-340.8(caches)-360.5(were)-357.1(cleared)-363.8(at)-340.8(the)-340.8(start)-340.8(of)-329.5(each)-343.5(test,)-323.8(disk)-320.5(throughput)-323.8(is)-320.5(critical)-336.6(in)-322.2(this)-317.7(test.)-573.8(The)-332.8(single)]TJ T* [(SCSI)-312.7(HP)-321.7(drive)-332.8(used)-329.5(by)-325(LIBTP)-322.2(is)-320.5(approximately)-336.6(13%)-329.5(slower)-334(than)-315.8(the)-315.8(disks)-306.3(used)-317(in)-309.7([CATT91])-323.1(which)-318.6(accounts)-326.5(for)]TJ T* [(part)-257.8(of)-254.5(the)-253.3(difference.)]TJ 2.5 -1.5375 TD [(OODBMS)-258.7(and)-268.7(INDEX)-264.6(outperform)-264(LIBTP)-247.2(most)-242.7(dramatically)-264.9(on)-250(traversal.)-520.1(This)-247.2(is)-245.5(because)-272.9(we)-259(use)-254.5(index)-253.3(look-)]TJ -2.5 -1.125 TD [(ups)-285.8(to)]TJ /TT7 1 Tf 2.7375 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(nd)-281.3(connections,)-298.6(whereas)-311.6(the)-290.8(other)-282.8(two)-275(systems)-270.5(use)-279.5(a)-281.2(link)-269.3(access)-296.3(method.)-525.5(The)-282.8(index)-278.3(requires)-291.8(us)-273.3(to)-272.2(examine)]TJ ET endstream endobj 75 0 obj << /ProcSet [/PDF /Text ] /Font << /TT2 4 0 R /TT4 5 0 R /TT6 6 0 R /TT7 7 0 R /T1 8 0 R >> /ExtGState << /GS1 9 0 R >> >> endobj 77 0 obj << /Length 11300 >> stream BT /T1 1 Tf 10 0 0 10 69.375 707.125 Tm 0 g /GS1 gs 0 Tc 0 Tw ()Tj /TT6 1 Tf 0.6375 -1.125 TD (Measure)Tj /TT4 1 Tf 5.1625 0 TD [(INDEX)-1514.7(OODBMS)-1496.2(RDBMS)-1486(LIBTP)]TJ /T1 1 Tf -5.8 -0.025 TD ()Tj 0 -0.2 TD ()Tj /TT4 1 Tf 0.5 -1.025 TD [(Lookup)-3376.7(5.4)-3450(12.9)-4000(27)-3262.5(27.2)]TJ 0 -1.125 TD [(Traversal)-2212.1(13)-4700(9.8)-4000(90)-3262.5(47.3)]TJ T* [(Insert)-4210.6(7.4)-3950(1.5)-4000(22)-3762.5(9.7)]TJ /T1 1 Tf -0.5 -0.125 TD ()Tj 0 0 TD ()Tj 0 0.75 TD ()Tj 0 1 TD ()Tj T* ()Tj T* ()Tj 5.05 -3.75 TD ()Tj 0 0.75 TD ()Tj 0 1 TD ()Tj T* ()Tj T* ()Tj 4.625 -3.75 TD ()Tj 0 0.75 TD ()Tj 0 1 TD ()Tj T* ()Tj T* ()Tj 5.775 -3.75 TD ()Tj 0 0.75 TD ()Tj 0 1 TD ()Tj T* ()Tj T* ()Tj 4.9875 -3.75 TD ()Tj 0 0.75 TD ()Tj 0 1 TD ()Tj T* ()Tj T* ()Tj 4.025 -3.75 TD ()Tj 0 0.75 TD ()Tj 0 1 TD ()Tj T* ()Tj T* ()Tj 1.325 1 TD ()Tj 0.1375 0 TD ()Tj /TT6 1 Tf 2.5 -1.125 TD [(Measure)-3651(Cache)-1507.8(Local)-1497.2(Remote)]TJ /T1 1 Tf -2.6375 -0.025 TD ()Tj 0.1375 0 TD ()Tj -0.1375 -0.2 TD ()Tj 0.1375 0 TD ()Tj /TT4 1 Tf 0.3625 -1.025 TD [(Lookup)-6176.7(cold)-2603.3(15.7)-2387.5(20.6)]TJ 9.2875 -1.125 TD [(warm)-2548.1(7.8)-2387.5(12.4)]TJ /T1 1 Tf -9.7875 -0.125 TD ()Tj 0.1375 0 TD ()Tj /TT4 1 Tf 0.3625 -1.125 TD [(Forward)-261.8(traversal)-2195.1(cold)-2603.3(28.4)-2387.5(52.6)]TJ 9.2875 -1.125 TD [(warm)-2048.1(23.5)-2387.5(47.4)]TJ /T1 1 Tf -9.7875 -0.125 TD ()Tj 0.1375 0 TD ()Tj /TT4 1 Tf 0.3625 -1.125 TD [(Backward)-271.3(traversal)-1520.1(cold)-2603.3(24.2)-2387.5(47.4)]TJ 9.2875 -1.125 TD [(warm)-2048.1(24.3)-2387.5(47.6)]TJ /T1 1 Tf -9.7875 -0.125 TD ()Tj 0.1375 0 TD ()Tj /TT4 1 Tf 0.3625 -1.125 TD [(Insert)-7010.6(cold)-3103.3(7.5)-2387.5(10.3)]TJ 9.2875 -1.125 TD [(warm)-2548.1(6.7)-2387.5(10.9)]TJ /T1 1 Tf -9.7875 -0.125 TD ()Tj 0.1375 0 TD ()Tj -0.1375 0 TD ()Tj 0 0.75 TD ()Tj 0 1 TD ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj 9.0375 -9.75 TD ()Tj 0 0.75 TD ()Tj 0 1 TD ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj 4.0625 -9.75 TD ()Tj 0 0.75 TD ()Tj 0 1 TD ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj 3.775 -9.75 TD ()Tj 0 0.75 TD ()Tj 0 1 TD ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj 4.2625 -9.75 TD ()Tj 0 0.75 TD ()Tj 0 1 TD ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj T* ()Tj /TT2 1 Tf -46.525 -12.825 TD [(Table)-505.2(2:)-517(Local)-511.3(MC680x0)-521.5(Performance)-547.8(of)-504.5(Several)]TJ 0 -1.125 TD [(Systems)-255.7(on)-243.8(OO1.)]TJ 26 1.125 TD [(Table)-580.2(3:)-592(Local)-573.8(vs.)-573.3(Remote)-599.1(Performance)-610.3(of)]TJ 0 -1.125 TD [(LIBTP)-236.5(on)-243.8(OO1.)]TJ /T1 1 Tf -26.4 -1.5375 TD [()200()]TJ /TT4 1 Tf 0 -3.45 TD [(two)-262.5(disk)-258(pages,)-273.1(but)-259.7(the)-265.8(links)-255.2(require)-281(only)-259.7(one,)-268.7(regardless)-283.8(of)-267(database)-282.6(size.)-520.3(Cattell)-259(reports)-273.1(that)-263(lookups)-258(using)-258(B-trees)]TJ 0 -1.125 TD [(instead)-330(of)-329.5(links)-317.7(makes)-332.8(traversal)-345.1(take)-334.5(twice)-334.5(as)-329.5(long)-322.2(in)-322.2(INDEX.)-589.6(Adding)-325(a)-331.2(link)-319.3(access)-346.3(method)-325.5(to)]TJ /TT2 1 Tf 39.3625 0 TD (db)Tj /TT4 1 Tf 1.1 0 TD [(\(3\))-321.5(or)-317(using)-308(the)]TJ -40.4625 -1.125 TD [(existing)-246(hash)-254.5(method)-250.5(would)-250(apparently)-267.3(be)-256.2(a)-256.2(good)-250(idea.)]TJ 2.5 -1.5375 TD [(Both)-317.7(OODBMS)-321.2(and)-331.2(INDEX)-339.6(issue)]TJ 14.4125 0 TD 0.0016 Tc [(coarser-granularity)-310.2(locks)-312.6(than)]TJ 12.425 0 TD 0 Tc [(LIBTP.)-559.7(This)-309.7(limits)-296.7(concurrency)-346.1(for)-321.5(multi-)]TJ -29.3375 -1.125 TD [(user)-284(applications,)-280.5(but)-272.2(helps)-276.7(single-user)-287.3(applications.)-530.5(In)-279.5(addition,)-272.7(the)-278.3(fact)-289(that)-275.5(LIBTP)-259.7(releases)-285.4(B-tree)-276.5(locks)-264.2(early)-276.5(is)-258(a)]TJ T* [(drawback)-375.8(in)-347.2(OO1.)-605.7(Since)-353.3(there)-364(is)-345.5(no)-337.5(concurrency)-371.1(in)-334.7(the)-340.8(benchmark,)-357.6(high-concurrency)-372.8(strategies)-348.6(only)-334.7(show)-338.7(up)-337.5(as)]TJ T* [(increased)-312.1(locking)-288(overhead.)-560.4(Finally,)-279(the)-278.3(architecture)-306.3(of)-279.5(the)-278.3(LIBTP)-272.2(implementation)-273.6(was)-282.3(substantially)-269.8(different)-295.1(from)]TJ T* [(that)-338(of)-342(either)-348.6(OODBMS)-333.7(or)-342(INDEX.)-602.1(Both)-330.2(of)-342(those)-339.2(systems)-333(do)-337.5(the)-340.8(searches)-363.3(in)-334.7(the)-340.8(user’s)-349.3(address)-351(space,)-354.3(and)-331.2(issue)]TJ T* [(requests)-335.6(for)-334(pages)-335.6(to)-309.7(the)-315.8(server)-332.1(process.)-576(Pages)-317(are)-329.3(cached)-337.1(in)-309.7(the)-315.8(client,)-316.3(and)-318.6(many)-315.8(queries)-324.8(can)-324.8(be)-318.7(satis)]TJ /TT7 1 Tf 41.9403 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(ed)-309.7(without)]TJ -42.4965 -1.125 TD [(contacting)-272.5(the)-265.8(server)-282.1(at)-265.8(all.)-513(LIBTP)-259.7(submits)-250.7(all)-263(the)-265.8(queries)-274.8(to)-259.7(the)-253.3(server)-269.6(process,)-263.5(and)-256.2(receives)-274.6(database)-270.1(records)-269.6(back;)]TJ T* [(it)-244.3(does)-254.5(no)-250(client)-253.8(caching.)]TJ 2.5 -1.5375 TD [(The)-395.3(RDBMS)-373.5(architecture)-418.7(is)-383(much)-390.8(closer)-399.8(to)-384.7(that)-388(of)-392(LIBTP.)-634.7(A)-390.3(server)-407.1(process)-401(receives)-412.1(queries)-399.8(and)-381.2(returns)]TJ -2.5 -1.125 TD [(results)-276.7(to)-272.2(a)-281.2(client.)-528.8(The)-282.8(timing)-263.7(results)-276.7(in)-272.2(table)-281.6(two)-275(clearly)-292.3(show)-276.2(that)-275.5(the)-278.3(conventional)-272.5(database)-282.6(client/server)-283.1(model)-263(is)]TJ T* [(expensive.)-576.5(LIBTP)-309.7(outperforms)-324.8(the)-315.8(RDBMS)-298.5(on)-300(traversal)-320.1(and)-306.2(insertion.)-550.5(We)-312.3(speculate)-317.3(that)-300.5(this)-292.7(is)-295.5(due)-306.2(in)-297.2(part)-307.8(to)-297.2(the)]TJ T* [(overhead)-272.9(of)-254.5(query)-260.6(parsing,)-256.2(optimization,)-245.3(and)-256.2(repeated)-276.3(interpretation)-263.3(of)-254.5(the)-253.3(plan)-253.3(tree)-264(in)-247.2(the)-253.3(RDBMS’)-240.5(query)-260.6(executor.)]TJ 2.5 -1.5375 TD [(Table)-311.1(three)-314(shows)-299.5(the)-290.8(differences)-321.1(between)-306(local)-294.1(and)-293.6(remote)-298.6(execution)-300.3(of)-292(LIBTP’s)-287.5(OO1)-293.2(implementation)-286.1(on)-287.5(a)]TJ -2.5 -1.125 TD [(DECstation.)-508.5(We)-274.8(measured)-281(performance)-297.8(with)-259.7(a)-268.7(populated)-269.1(\(warm\))-282.1(cache)-287.1(and)-268.7(an)-268.7(empty)-263(\(cold\))-274.8(cache.)-537.1(Reported)-259.5(times)]TJ T* [(are)-354.3(the)-340.8(means)-332.8(of)-329.5(twenty)-328.3(tests,)-322.2(and)-331.2(are)-341.8(in)-322.2(seconds.)-584(Standard)-332.8(deviations)-327.1(were)-344.6(within)-319.3(seven)-335.6(percent)-345.1(of)-329.5(the)-328.3(mean)-334.5(for)]TJ T* [(remote,)-261.1(and)-256.2(two)-250(percent)-270.1(of)-254.5(the)-253.3(mean)-259.5(for)-259(local.)]TJ 2.5 -1.5375 TD [(The)-432.8(20ms)-420.5(overhead)-447.9(of)-429.5(TCP/IP)-411.5(on)-425(an)-431.2(Ethernet)-437.8(entirely)-433.3(accounts)-439(for)-434(the)-415.8(difference)-447.8(in)-409.7(speed.)-673.1(The)-420.3(remote)]TJ -2.5 -1.125 TD [(traversal)-332.6(times)-308.5(are)-329.3(nearly)-326.5(double)-315.8(the)-315.8(local)-319.1(times)-308.5(because)-335.4(we)-321.5(do)-300(index)-303.3(lookups)-295.5(and)-306.2(part)-307.8(fetches)-318.5(in)-297.2(separate)-324.6(queries.)]TJ T* [(It)-314.2(would)-312.5(make)-322(sense)-321.5(to)-309.7(do)-312.5(indexed)-322(searches)-338.3(on)-312.5(the)-303.3(server,)-319.6(but)-297.2(we)-309(were)-319.6(unwilling)-291.5(to)-297.2(hard-code)-327.4(knowledge)-312.3(of)-304.5(OO1)]TJ T* [(indices)-267.5(into)-256.8(our)-254.5(LIBTP)-247.2(TCL)-248.8(server.)-519.6(Cold)-242.7(and)-256.2(warm)-260.6(insertion)-250.5(times)-246(are)-266.8(identical)-257.1(since)-257.8(insertions)-248.8(do)-250(not)-247.2(bene)]TJ /TT7 1 Tf 43.7627 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(t)-253.3(from)]TJ -44.3188 -1.125 TD (caching.)Tj 2.5 -1.5375 TD [(One)-334(interesting)-328.8(difference)-360.3(shown)-326.2(by)-325(table)-331.6(three)-339(is)-320.5(the)-328.3(cost)-326.7(of)-329.5(forward)-347.5(versus)-332.3(backward)-350.8(traversal.)-595.1(When)-337.3(we)]TJ -2.5 -1.125 TD [(built)-291.5(the)-303.3(database,)-320.1(we)-296.5(inserted)-297(parts)-293.7(in)-284.7(part)]TJ /TT6 1 Tf 17.7375 0 TD (id)Tj /TT4 1 Tf 1.0625 0 TD [(order.)-552.6(We)-299.8(built)-279(the)-290.8(indices)-292.5(at)-290.8(the)-290.8(same)-295.3(time.)-535.2(Therefore,)-321.1(the)-290.8(forward)]TJ -18.8 -1.125 TD [(index)-303.3(had)-306.2(keys)-304.5(inserted)-309.5(in)-297.2(order,)-315.1(while)-303.3(the)-303.3(backward)-325.8(index)-303.3(had)-306.2(keys)-304.5(inserted)-309.5(more)-295.3(randomly.)-542.5(In-order)-311.6(insertion)-288(is)]TJ 0 -1.325 TD [(pessimal)-288(for)-296.5(B-tree)-301.5(indices,)-292.5(so)-285.8(the)-290.8(forward)-310(index)-290.8(is)-283(much)-290.8(larger)-306(than)-290.8(the)-290.8(backward)-313.3(one)]TJ 7 0 0 7 423.125 185.375 Tm (5)Tj 10 0 0 10 426.625 181.375 Tm [(.)-537.5(This)-272.2(larger)-293.5(size)-282.8(shows)-274.5(up)]TJ -35.725 -1.125 TD [(as)-254.5(extra)-264(disk)-245.5(reads)-265.1(in)-247.2(the)-253.3(cold)-253.3(benchmark.)]TJ /TT2 1 Tf 0 -2.325 TD [(6.)-500(Conclusions)]TJ /TT4 1 Tf 2.5 -1.5375 TD [(LIBTP)-359.7(provides)-368.7(the)-365.8(basic)-370.3(building)-354(blocks)-364.2(to)-359.7(support)-362.5(transaction)-375.3(protection.)-620.8(In)-367(comparison)-372(with)-359.7(traditional)]TJ -2.5 -1.125 TD [(Unix)-387.5(libraries)-398.6(and)-393.7(commercial)-405.3(systems,)-370.5(it)-369.3(offers)-393(a)-381.2(variety)-386.1(of)-379.5(tradeoffs.)-646.3(Using)-373.3(complete)-385(transaction)-387.8(protection)-383.3(is)]TJ T* [(more)-345.3(complicated)-350.8(than)-340.8(simply)-327.3(adding)]TJ /TT2 1 Tf 15.8125 0 TD (fsync)Tj /TT4 1 Tf 2.225 0 TD [(\(2\))-346.5(and)]TJ /TT11 1 Tf 3.3 0 TD (ß)Tj /TT2 1 Tf 0.5562 0 TD (ock)Tj /TT4 1 Tf 1.4938 0 TD [(\(2\))-346.5(calls)-342.5(to)-334.7(code,)-337.3(but)-322.2(it)-319.3(is)-320.5(faster)-341.8(in)-322.2(some)-326.7(cases)-340.1(and)-331.2(offers)]TJ /T1 1 Tf 8 0 0 8 69.375 100 Tm ()Tj /TT4 1 Tf 5 0 0 5 90.875 90.25 Tm (5)Tj 8 0 0 8 95.375 87.125 Tm [(The)-242.2(next)-247.1(release)-224.6(of)-245.1(the)-247.1(4.4BSD)-257.8(access)-227.5(method)-250.5(will)-256.8(automatically)-245.1(detect)-237.8(and)-243.7(compensate)-232.9(for)-240.2(in-order)-232.4(insertion,)-250.5(eliminating)-257.8(this)-258.3(problem.)]TJ ET endstream endobj 78 0 obj << /ProcSet [/PDF /Text ] /Font << /TT2 4 0 R /TT4 5 0 R /TT6 6 0 R /TT7 7 0 R /TT11 55 0 R /T1 8 0 R >> /ExtGState << /GS1 9 0 R >> >> endobj 80 0 obj << /Length 8967 >> stream BT /TT4 1 Tf 10 0 0 10 69.375 713.25 Tm 0 g /GS1 gs 0 Tc 0 Tw [(stricter)-298.6(guarantees)-312.1(\(atomicity,)-290.1(consistency,)-297(isolation,)-280.7(and)-293.7(durability\).)-541.3(If)-296.5(the)-290.8(data)-297(to)-284.7(be)-293.7(protected)-304.8(are)-304.3(already)-307.6(format-)]TJ 0 -1.125 TD [(ted)-278.3(\()]TJ /TT6 1 Tf 1.8375 0 TD (i.e.)Tj /TT4 1 Tf 1.4875 0 TD [(use)-267(one)-268.7(of)-267(the)-265.8(database)-282.6(access)-283.8(methods\),)-265.8(then)-265.8(adding)-265.8(transaction)-275.3(protection)-270.8(requires)-279.3(no)-262.5(additional)-263.5(complex-)]TJ -3.325 -1.125 TD [(ity,)-244.3(but)-247.2(incurs)-256.2(a)-256.2(performance)-285.3(penalty)-256.6(of)-254.5(approximately)-261.6(15%.)]TJ 2.5 -1.5375 TD [(In)-279.5(comparison)-284.5(with)-272.2(commercial)-292.8(database)-295.1(systems,)-270.5(the)-278.3(tradeoffs)-296.3(are)-291.8(more)-282.8(complex.)-531.6(LIBTP)-272.2(does)-279.5(not)-259.7(currently)]TJ -2.5 -1.125 TD [(support)-375(a)-381.2(standard)-387.3(query)-385.6(language.)-640.6(The)-382.8(TCL-based)-389(server)-394.6(process)-388.5(allows)-376.7(a)-381.1(certain)-392.3(ease)-391.8(of)-379.5(use)-379.5(which)-381.2(would)-375(be)]TJ T* [(enhanced)-312.1(with)-284.7(a)-293.7(more)-295.3(user-friendly)-310.4(interface)-315.4(\()]TJ /TT6 1 Tf 18.8625 0 TD (e.g.)Tj /TT4 1 Tf 1.7375 0 TD [(a)-281.2(windows)-276.2(based)-285.6(query-by-form)-300.8(application\),)-286.6(for)-284(which)-281.1(we)-284(have)]TJ -20.6 -1.125 TD [(a)-368.7(working)-367(prototype.)-617.5(When)-374.8(accesses)-388.3(do)-362.5(not)-359.7(require)-381(sophisticated)-353.8(query)-360.6(processing,)-360.6(the)-353.3(TCL)-348.8(interface)-377.9(is)-345.5(an)-356.2(ade-)]TJ T* [(quate)-347(solution.)-577.3(What)-347(LIBTP)-322.2(fails)-328.3(to)-322.2(provide)-332.8(in)-322.2(functionality,)-327.6(it)-319.3(makes)-332.8(up)-325(for)-334(in)-322.2(performance)-360.3(and)]TJ /TT7 1 Tf 40.375 0 TD (ß)Tj /TT4 1 Tf 0.5562 0 TD [(exibility.)-560.8(Any)]TJ -40.9312 -1.125 TD [(application)-257.1(may)-253.3(make)-259.5(use)-254.5(of)-254.5(its)-242.7(record)-271.3(interface)-277.9(or)-254.5(the)-253.3(more)-257.8(primitive)-246.5(log,)-247.2(lock,)-253.3(and)-256.1(buffer)-269.6(calls.)]TJ 2.5 -1.5375 TD [(Future)-289.2(work)-294.8(will)-281.8(focus)-296.5(on)-275(overcoming)-286.1(some)-276.7(of)-279.5(the)-278.3(areas)-296.3(in)-272.2(which)-281.2(LIBTP)-272.2(is)-270.5(currently)-290.6(de)]TJ /TT7 1 Tf 35.8438 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(cient)-281.6(and)-281.2(extending)]TJ -38.9 -1.125 TD [(its)-267.7(transaction)-287.8(model.)-525.5(The)-282.8(addition)-272.7(of)-279.5(an)-268.7(SQL)-260.8(parser)-282.1(and)-268.7(forms)-267(front)-268.7(end)-268.7(will)-256.8(improve)-267.5(the)-265.8(system’s)-262.5(ease)-279.3(of)-267(use)-267(and)]TJ T* [(make)-272(it)-256.8(more)-270.3(competitive)-266.8(with)-259.7(commercial)-280.3(systems.)-508(In)-267(the)-265.8(long)-259.7(term,)-267.5(we)-271.5(would)-250(like)-250.5(to)-247.2(add)-256.1(generalized)-279.6(hierarchical)]TJ T* [(locking,)-263(nested)-270.3(transactions,)-273.6(parallel)-277(transactions,)-261.1(passing)-250(of)-254.5(transactions)-261.1(between)-268.5(processes,)-268(and)-256.1(distributed)-247.7(commit)]TJ T* [(handling.)-563(In)-317(the)-315.8(short)-312.5(term,)-317.5(the)-303.3(next)-303.3(step)-301.7(is)-295.5(to)-297.2(integrate)-314.5(LIBTP)-297.2(with)-297.2(the)-303.3(most)-292.7(recent)-320.1(release)-324.6(of)-304.5(the)-303.3(database)-320.1(access)]TJ T* [(routines)-253.3(and)-256.2(make)-259.5(it)-244.3(freely)-268.5(available)-266.1(via)-253.3(anonymous)-251.7(ftp.)]TJ /TT2 1 Tf 0 -2.325 TD [(7.)-500(Acknowledgements)]TJ /TT4 1 Tf 2.5 -1.5375 TD [(We)-274.8(would)-262.5(like)-263(to)-247.2(thank)-253.3(John)-248.3(Wilkes)-255(and)-256.2(Carl)-253.3(Staelin)-247.7(of)-254.5(Hewlett-Packard)-280.8(Laboratories)-271.8(and)-256.1(Jon)-248.3(Krueger.)-524.1(John)]TJ -2.5 -1.125 TD [(and)-293.7(Carl)-290.8(provided)-282.8(us)-273.3(with)-272.2(an)-281.2(extra)-289(disk)-270.5(for)-284(the)-278.3(HP)-271.7(testbed)-280(less)-275(than)-278.3(24)-275(hours)-277.8(after)-293.5(we)-284(requested)-293.5(it.)-269.3(Jon)-273.3(spent)-276.7(count-)]TJ T* [(less)-300(hours)-302.8(helping)-288(us)-285.8(understand)-299.8(the)-290.8(intricacies)-303.6(of)-292(commercial)-305.3(database)-307.6(products)-293.6(and)-293.7(their)-292.5(behavior)-301.5(under)-298.1(a)-293.6(variety)]TJ T* [(of)-254.5(system)-247.2(con)]TJ /TT7 1 Tf 5.5563 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD (gurations.)Tj /TT2 1 Tf -6.1125 -2.325 TD [(8.)-500(References)]TJ /TT4 1 Tf 0 -2.25 TD [([ANDR89])-338(Andrade,)-344.6(J.,)-310.8(Carges,)-323.1(M.,)-310.8(Kovach,)-327.6(K.,)-315.3(‘‘Building)-308.5(an)-318.7(On-Line)-324.8(Transaction)-329.8(Processing)-317(System)-305.2(On)-315.3(UNIX)]TJ 2.15 -1.125 TD [(System)-242.7(V’’,)]TJ /TT6 1 Tf 5.0875 0 TD (CommUNIXations)Tj /TT4 1 Tf 7.3875 0 TD 0.0021 Tc [(,)-247.9(November/December)-247.2(1989.)]TJ -14.625 -2.25 TD 0 Tc [([BAY77])-260.2(Bayer,)-262.3(R.,)-245.5(Schkolnick,)-250.5(M.,)-248.3(‘‘Concurrency)-281.9(of)-254.5(Operations)-262.3(on)-250(B-Trees’’,)]TJ /TT6 1 Tf 32.5 0 TD [(Acta)-255(Informatica)]TJ /TT4 1 Tf 6.8125 0 TD [(,)-250(1977.)]TJ -39.3125 -2.25 TD [([BERN80])-429.5(Bernstein,)-430(P.,)-418.8(Goodman,)-431.2(N.,)-427.8(‘‘Timestamp)-435(Based)-431.2(Algorithms)-406.8(for)-421.5(Concurrency)-435.4(Control)-406.8(in)-409.7(Distributed)]TJ 2.15 -1.125 TD [(Database)-272.9(Systems’’,)]TJ /TT6 1 Tf 8.4375 0 TD [(Proceedings)-264(6th)-247.2(International)-247.7(Conference)-265.6(on)-250(Very)-262.3(Large)-248.3(Data)-250(Bases)]TJ /TT4 1 Tf 27.8125 0 TD [(,)-250(October)-266.8(1980.)]TJ -38.4 -2.25 TD [([BSD91])-251.2(DB\(3\),)]TJ /TT6 1 Tf 6.925 0 TD [(4.4BSD)-254.5(Unix)-256.2(Programmer’s)-261.3(Manual)-251.7(Reference)-277.9(Guide)]TJ /TT4 1 Tf 21.775 0 TD [(,)-250(University)-253.3(of)-254.5(California,)-258.3(Berkeley,)-265.6(1991.)]TJ -28.7 -2.25 TD [([CATT91])-323.1(Cattell,)-309(R.G.G.,)-313.7(‘‘An)-324.3(Engineering)-325.3(Database)-335.4(Benchmark’’,)]TJ /TT6 1 Tf 28.5375 0 TD [(The)-312.5(Benchmark)-321.3(Handbook)-309(for)-295.5(Database)-304.5(and)]TJ -26.3875 -1.125 TD [(Transaction)-241(Processing)-256.2(Systems)]TJ /TT4 1 Tf 12.95 0 TD [(,)-250(J)0(.)-248.3(Gray,)-263.5(editor,)-255(Morgan)-259(Kaufman)-266.8(1991.)]TJ -15.1 -2.25 TD [([CHEN91])-286.8(Cheng,)-276.7(E.,)-276.7(Chang,)-276.7(E.,)-276.7(Klein,)-265.8(J.,)-260.8(Lee,)-276.5(D.,)-265.3(Lu,)-264.2(E.,)-264.2(Lutgardo,)-272(A.,)-265.3(Obermarck,)-289.9(R.,)-258(‘‘An)-274.3(Open)-271.5(and)-268.7(Extensible)]TJ 2.15 -1.125 TD [(Event-Based)-265.6(Transaction)-267.3(Manager’’,)]TJ /TT6 1 Tf 15.1125 0 TD [(Proceedings)-264(1991)-250(Summer)-260.2(Usenix)]TJ /TT4 1 Tf 13.8375 0 TD [(,)-250(Nashville,)-255(TN,)-254.5(June)-254.5(1991.)]TJ -31.1 -2.25 TD [([CHOU85])-350.5(Chou,)-333(H.,)-340.3(DeWitt,)-331.6(D.,)-327.8(‘‘An)-336.8(Evaluation)-330.5(of)-329.5(Buffer)-340.1(Management)-342.3(Strategies)-331.6(for)-334(Relational)-327.6(Database)-347.9(Sys-)]TJ 2.15 -1.125 TD (tems’’,)Tj /TT6 1 Tf 3.0625 0 TD [(Proceedings)-264(of)-247.2(the)-253.3(11th)-247.2(International)-247.7(Conference)-265.6(on)-250(Very)-262.3(Large)-248.3(Databases)]TJ /TT4 1 Tf 30.45 0 TD [(,)-250(1985.)]TJ -35.6625 -2.25 TD [([DEWI84])-349.1(DeWitt,)-331.6(D.,)-327.8(Katz,)-337.3(R.,)-320.5(Olken,)-331.2(F.,)-318.8(Shapiro,)-326.7(L.,)-326.7(Stonebraker,)-331(M.,)-310.8(Wood,)-318.6(D.,)-315.3(‘‘Implementation)-327.4(Techniques)]TJ 2.15 -1.125 TD [(for)-259(Main)-251.7(Memory)-256.2(Database)-272.9(Systems’’,)]TJ /TT6 1 Tf 15.925 0 TD [(Proceedings)-264(of)-247.2(SIGMOD)]TJ /TT4 1 Tf 10.1375 0 TD [(,)-250(pp.)-250(1-8,)-254.5(June)-254.5(1984.)]TJ -28.2125 -2.25 TD [([GRAY76])-363(Gray,)-363.5(J.,)-348.3(Lorie,)-359.5(R.,)-345.5(Putzolu,)-344.3(F.,)-343.8(and)-356.2(Traiger,)-370.1(I.,)-342(‘‘Granularity)-362.1(of)-342(locks)-339.2(and)-343.7(degrees)-358.8(of)-342(consistency)-347(in)-334.7(a)]TJ 2.15 -1.125 TD [(large)-276.5(shared)-277.6(data)-272(base’’,)]TJ /TT6 1 Tf 10.075 0 TD [(Modeling)-267.5(in)-259.7(Data)-262.5(Base)-256.2(Management)-266.8(Systems)]TJ /TT4 1 Tf 18.2625 0 TD [(,)-250(Elsevier)-261.1(North)-254.5(Holland,)-253.3(New)-261.8(York,)-257.3(pp.)]TJ -28.3375 -1.125 TD (365-394.)Tj -2.15 -2.25 TD [([HAER83])-311.8(Haerder,)-330.3(T.)-551.7(Reuter,)-309.5(A.)-552.8(‘‘Principles)-309.5(of)-304.5(Transaction-Oriented)-335.7(Database)-310.4(Recovery’’,)]TJ /TT6 1 Tf 38.7 0 TD [(Computing)-280.2(Surveys)]TJ /TT4 1 Tf 7.85 0 TD (,)Tj -44.4 -1.125 TD [(15\(4\);)-256.2(237-318,)-254.5(1983.)]TJ -2.15 -2.25 TD [([KUNG81])-295.3(Kung,)-265.3(H.)-265.3(T.,)-264.2(Richardson,)-270.3(J.,)-260.8(‘‘On)-274.3(Optimistic)-252.8(Methods)-262.5(for)-271.5(Concurrency)-285.4(Control’’,)]TJ /TT6 1 Tf 37.95 0 TD [(ACM)-264.2(Transactions)-251.9(on)]TJ -35.8 -1.125 TD [(Database)-254.5(Systems)]TJ /TT4 1 Tf 7.5125 0 TD [(6\(2\);)-256.2(213-226,)-254.5(1981.)]TJ ET endstream endobj 81 0 obj << /ProcSet [/PDF /Text ] /Font << /TT2 4 0 R /TT4 5 0 R /TT6 6 0 R /TT7 7 0 R >> /ExtGState << /GS1 9 0 R >> >> endobj 83 0 obj << /Length 8326 >> stream BT /TT4 1 Tf 10 0 0 10 69.375 713.25 Tm 0 g /GS1 gs 0 Tc 0 Tw [([LEHM81])-301(Lehman,)-298.6(P.,)-281.3(Yao,)-296.5(S.,)-281.3(‘‘Ef)]TJ /TT7 1 Tf 15.1224 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(cient)-303.1(Locking)-292.5(for)-296.5(Concurrent)-301.5(Operations)-299.8(on)-287.5(B-trees’’,)]TJ /TT6 1 Tf 22.2215 0 TD [(ACM)-289.2(Transactions)-276.9(on)]TJ -35.75 -1.125 TD [(Database)-254.5(Systems)]TJ /TT4 1 Tf 7.2625 0 TD [(,)-250(6\(4\),)-259(December)-279.1(1981.)]TJ -9.4125 -2.25 TD [([MOHA91])-390.8(Mohan,)-379.5(C.,)-370.5(Pirahesh,)-381.2(H.,)-377.8(‘‘ARIES-RRH:)-627.8(Restricted)-383.3(Repeating)-383.3(of)-379.5(History)-362.5(in)-359.7(the)-365.8(ARIES)-360.8(Transaction)]TJ 2.15 -1.125 TD [(Recovery)-268.5(Method’’,)]TJ /TT6 1 Tf 8.3875 0 TD [(Proceedings)-264(7th)-247.2(International)-247.7(Conference)-265.6(on)-250(Data)-250(Engineering)]TJ /TT4 1 Tf 25.6375 0 TD [(,)-250(Kobe,)-259(Japan,)-260.6(April)-251.7(1991.)]TJ -36.175 -2.25 TD [([NODI90])-322(Nodine,)-306.2(M.,)-285.8(Zdonik,)-286.3(S.,)-281.3(‘‘Cooperative)-309.3(Transaction)-304.8(Hierarchies:)-313.8(A)-290.3(Transaction)-304.8(Model)-289.2(to)-284.7(Support)-283(Design)]TJ 2.15 -1.125 TD (Applications’’,)Tj /TT6 1 Tf 6.4375 0 TD [(Proceedings)-414(16th)-397.2(International)-397.7(Conference)-403.1(on)-387.5(Very)-399.8(Large)-385.8(Data)-387.5(Bases)]TJ /TT4 1 Tf 29.45 0 TD [(,)-387.5(Brisbane,)-395.3(Australia,)]TJ -35.8875 -1.125 TD [(August)-248.3(1990.)]TJ -2.15 -2.25 TD [([OUST90])-322.7(Ousterhout,)-318.7(J.,)-310.8(‘‘Tcl:)-573.6(An)-315.3(Embeddable)-327(Command)-308.5(Language’’,)]TJ /TT6 1 Tf 30.2 0 TD [(Proceedings)-314(1990)-300(Winter)-303.3(Usenix)]TJ /TT4 1 Tf 13.425 0 TD [(,)-300(Wash-)]TJ -41.475 -1.125 TD [(ington,)-244.3(D.C.,)-248.3(January)-265.1(1990.)]TJ -2.15 -2.25 TD [([POSIX91])-444.3(‘‘Unapproved)-466.1(Draft)-440.1(for)-434(Realtime)-427.6(Extension)-425.5(for)-434(Portable)-430(Operating)-439(Systems’’,)-425(Draft)-440.1(11,)-425(October)-441.8(7,)]TJ 2.15 -1.125 TD [(1991,)-250(IEEE)-259.5(Computer)-250.5(Society.)]TJ -2.15 -2.25 TD [([ROSE91])-402.8(Rosenblum,)-394.3(M.,)-398.3(Ousterhout,)-406.2(J.,)-398.3(‘‘The)-416.8(Design)-392(and)-393.7(Implementation)-393.5(of)-392(a)-393.7(Log-Structured)-403.1(File)-381.8(System’’,)]TJ /TT6 1 Tf 2.15 -1.125 TD [(Proceedings)-264(of)-247.2(the)-253.3(13th)-247.2(Symposium)-257.3(on)-250(Operating)-251.7(Systems)-259(Principles)]TJ /TT4 1 Tf 27.75 0 TD [(,)-250(1991.)]TJ -29.9 -2.25 TD [([SELT91])-307.8(Seltzer,)-311.1(M.,)-298.3(Stonebraker,)-318.5(M.,)-298.3(‘‘Read)-316.8(Optimized)-303.8(File)-294.3(Systems:)-288.2(A)-302.8(Performance)-316.6(Evaluation’’,)]TJ /TT6 1 Tf 41.7875 0 TD (Proceedings)Tj -39.6375 -1.125 TD [(7th)-247.2(Annual)-248.8(International)-247.7(Conference)-265.6(on)-250(Data)-250(Engineering)]TJ /TT4 1 Tf 23.5125 0 TD [(,)-250(Kobe,)-259(Japan,)-260.6(April)-251.7(1991.)]TJ -25.6625 -2.25 TD [([SPEC88])-343.8(Spector,)-357.8(Rausch,)-356.2(Bruell,)-350.5(‘‘Camelot:)-355.5(A)-340.3(Flexible,)-335.2(Distributed)-338(Transaction)-354.8(Processing)-342(System’’,)]TJ /TT6 1 Tf 43.1125 0 TD (Proceed-)Tj -40.9625 -1.125 TD [(ings)-245.5(of)-247.2(Spring)-245.5(COMPCON)-248.3(1988)]TJ /TT4 1 Tf 12.9875 0 TD [(,)-250(February)-265.1(1988.)]TJ -15.1375 -2.25 TD [([SQL86])-282.3(American)-295.1(National)-281.6(Standards)-268.7(Institute,)-260.2(‘‘Database)-294.4(Language)-282.6(SQL’’,)-269.8(ANSI)-266.5(X3.135-1986)-269.8(\(ISO)-268.2(9075\),)-267(May)]TJ 2.15 -1.125 TD (1986.)Tj -2.15 -2.25 TD [([STON81])-272.7(Stonebraker,)-281(M.,)-260.8(‘‘Operating)-285.4(System)-255.2(Support)-258(for)-259(Database)-272.9(Management’’,)]TJ /TT6 1 Tf 34.9125 0 TD [(Communications)-247.2(of)-247.2(the)-253.3(ACM)]TJ /TT4 1 Tf 11.6375 0 TD (,)Tj -44.4 -1.125 TD (1981.)Tj -2.15 -2.25 TD [([SULL92])-459(Sullivan,)-441.5(M.,)-448.3(Olson,)-448.3(M.,)-448.3(‘‘An)-461.8(Index)-460.6(Implementation)-443.5(Supporting)-430.2(Fast)-433(Recovery)-456(for)-446.5(the)-440.8(POSTGRES)]TJ 2.15 -1.125 TD [(Storage)-532.8(System’’,)-526.7(to)-522.2(appear)-547.9(in)]TJ /TT6 1 Tf 13.7875 0 TD [(Proceedings)-526.5(8th)-509.7(Annual)-511.3(International)-510.2(Conference)-528.1(on)-512.5(Data)-512.5(Engineering)]TJ /TT4 1 Tf 30.6125 0 TD (,)Tj -44.4 -1.125 TD [(Tempe,)-261.1(Arizona,)-266.8(February)-265.1(1992.)]TJ -2.15 -2.25 TD [([TPCB90])-320.5(Transaction)-342.3(Processing)-329.5(Performance)-354.1(Council,)-321(‘‘TPC)-312.5(Benchmark)-328.1(B’’,)-317(Standard)-320.3(Speci)]TJ /TT7 1 Tf 39.1592 0 TD (Þ)Tj /TT4 1 Tf 0.5561 0 TD [(cation,)-316.3(Waterside)]TJ -37.5653 -1.125 TD [(Associates,)-260.6(Fremont,)-248.8(CA.,)-248.3(1990.)]TJ -2.15 -2.25 TD [([YOUN91])-345.3(Young,)-327.8(M.)-323.3(W.,)-331.2(Thompson,)-322.2(D.)-327.8(S.,)-318.8(Jaffe,)-332.1(E.,)-314.2(‘‘A)-324.3(Modular)-318.7(Architecture)-340.4(for)-321.5(Distributed)-313(Transaction)-329.8(Pro-)]TJ 2.15 -1.125 TD (cessing’’,)Tj /TT6 1 Tf 4.125 0 TD [(Proceedings)-264(1991)-250(Winter)-253.3(Usenix)]TJ /TT4 1 Tf 13.275 0 TD [(,)-250(Dallas,)-257.8(TX,)-254.5(January)-265.1(1991.)]TJ /TT2 1 Tf -17.05 -1.5375 TD [(Margo)-274.8(I.)-260.8(Seltzer)]TJ /TT4 1 Tf 7.2875 0 TD [(is)-245.5(a)-256.2(Ph.D.)-246.7(student)-248.8(in)-247.2(the)-253.3(Department)-267.3(of)-254.5(Electrical)-269.4(Engineering)-262.8(and)-256.2(Computer)-250.5(Sciences)-264(at)-253.3(the)]TJ -9.7875 -1.125 TD [(University)-328.3(of)-329.5(California,)-333.3(Berkeley.)-590.6(Her)-338.5(research)-356.9(interests)-330(include)]TJ /TT7 1 Tf 27.25 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-309.7(systems,)-308(databases,)-331(and)-318.7(transaction)-325.3(process-)]TJ -27.8062 -1.125 TD [(ing)-359.7(systems.)-608(She)-362.5(spent)-364.2(several)-381(years)-377.6(working)-367(at)-365.8(startup)-365.8(companies)-373.6(designing)-361.3(and)-368.7(implementing)]TJ /TT7 1 Tf 40.2 0 TD (Þ)Tj /TT4 1 Tf 0.5562 0 TD [(le)-359.7(systems)-345.5(and)]TJ -40.7561 -1.125 TD [(transaction)-287.8(processing)-285.6(software)-282.1(and)-268.7(designing)-261.3(microprocessors.)-533.8(Ms.)-259.2(Seltzer)-273.6(received)-288.8(her)-273.1(AB)-260.8(in)-259.7(Applied)-265.8(Mathemat-)]TJ T* 0.0017 Tc [(ics)-250(from)-254.5(Harvard/Radcliffe)]TJ 11.125 0 TD 0 Tc [(College)-252.1(in)-247.2(1983.)]TJ -8.625 -1.5375 TD [(In)-292(her)-298.1(spare)-290.1(time,)-272.7(Margo)-284(can)-287.3(usually)-273.8(be)-281.1(found)-279.5(preparing)-293.5(massive)-278.3(quantities)-274.3(of)-279.5(food)-279.5(for)-284(hungry)-279.5(hordes,)-284(study-)]TJ -2.5 -1.125 TD [(ing)-247.2(Japanese,)-271.3(or)-254.5(playing)-250.5(soccer)-271.3(with)-247.2(an)-256.2(exciting)-253.8(Bay)-251.7(Area)-269.6(Women’s)-262.3(Soccer)-266.8(team,)-256.6(the)-253.3(Berkeley)-265.6(Bruisers.)]TJ /TT2 1 Tf 2.5 -2.6625 TD [(Michael)-319.1(A.)-315.3(Olson)]TJ /TT4 1 Tf 7.85 0 TD [(is)-308(a)-318.7(Master’s)-326(student)-311.3(in)-297.2(the)-303.3(Department)-317.3(of)-304.5(Electrical)-319.4(Engineering)-312.8(and)-306.2(Computer)-300.5(Sciences)]TJ -10.35 -1.125 TD [(at)-403.3(the)-390.8(University)-390.8(of)-392(California,)-395.8(Berkeley.)-653.1(His)-385.8(primary)-397(interests)-392.5(are)-404.3(database)-407.6(systems)-383(and)-393.7(mass)-387.5(storage)-399.8(systems.)]TJ T* [(Mike)-439.2(spent)-439.2(two)-437.5(years)-452.6(working)-442(for)-446.5(a)-443.7(commercial)-455.3(database)-457.6(system)-434.7(vendor)-448.1(before)-458.8(joining)-416.5(the)-428.3(Postgres)-423.3(Research)]TJ T* [(Group)-257.3(at)-253.3(Berkeley)-265.6(in)-247.2(1988.)-500(He)-259(received)-276.3(his)-245.5(B.A.)-248.3(in)-247.2(Computer)-250.5(Science)-265.6(from)-256.2(Berkeley)-265.6(in)-247.2(May)-254.5(1991.)]TJ 2.5 -1.5375 TD [(Mike)-264.2(only)-259.7(recently)-279.8(transferred)-294.4(into)-256.8(Sin)-253.5(City,)-252.3(but)-247.2(is)-245.5(rapidly)-255(adopting)-250.5(local)-256.6(customs)-247.2(and)-256.2(coloration.)-508.3(In)-254.5(his)-245.5(spare)]TJ -2.5 -1.125 TD [(time,)-310.2(he)-318.7(organizes)-331(informal)-319.1(Friday)-314.2(afternoon)-318.5(study)-295.5(groups)-302.8(to)-297.2(discuss)-298.3(recent)-320.1(technical)-316.1(and)-306.2(economic)-312.8(developments.)]TJ T* [(Among)-250(his)-245.5(hobbies)-251.7(are)-266.8(Charles)-257.8(Dickens,)-260.6(Red)-251.7(Rock,)-251.7(and)-256.2(speaking)-257.8(Dutch)-256.2(to)-247.2(anyone)-262.3(who)-252.8(will)-244.3(permit)-252.1(it.)]TJ ET endstream endobj 84 0 obj << /ProcSet [/PDF /Text ] /Font << /TT2 4 0 R /TT4 5 0 R /TT6 6 0 R /TT7 7 0 R >> /ExtGState << /GS1 9 0 R >> >> endobj 32 0 obj << /Type /XObject /Subtype /Image /Width 8 /Height 128 /BitsPerComponent 1 /ImageMask true /Length 129 >> stream ™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™ endstream endobj 35 0 obj << /Type /XObject /Subtype /Image /Width 8 /Height 128 /BitsPerComponent 1 /ImageMask true /Length 129 >> stream ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ endstream endobj 34 0 obj << /Type /XObject /Subtype /Image /Width 8 /Height 52 /BitsPerComponent 1 /ImageMask true /Length 53 >> stream ™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™™ff™ endstream endobj 33 0 obj << /Type /XObject /Subtype /Image /Width 8 /Height 128 /BitsPerComponent 1 /ImageMask true /Length 129 >> stream ýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þ endstream endobj 36 0 obj << /Type /XObject /Subtype /Image /Width 8 /Height 60 /BitsPerComponent 1 /ImageMask true /Length 61 >> stream ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþ endstream endobj 37 0 obj << /Type /XObject /Subtype /Image /Width 8 /Height 44 /BitsPerComponent 1 /ImageMask true /Length 45 >> stream ýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ï endstream endobj 38 0 obj << /Type /XObject /Subtype /Image /Width 8 /Height 128 /BitsPerComponent 1 /ImageMask true /Length 129 >> stream ÷ûýþ¿ßï÷ûýþ¿ßï÷ûýþ¿ßï÷ûýþ¿ßï÷ûýþ¿ßï÷ûýþ¿ßï÷ûýþ¿ßï÷ûýþ¿ßï÷ûýþ¿ßï÷ûýþ¿ßï÷ûýþ¿ßï÷ûýþ¿ßï÷ûýþ¿ßï÷ûýþ¿ßï÷ûýþ¿ßï÷ûýþ¿ßï endstream endobj 44 0 obj << /Type /XObject /Subtype /Image /Width 8 /Height 104 /BitsPerComponent 1 /ImageMask true /Length 105 >> stream ýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þ endstream endobj 43 0 obj << /Type /XObject /Subtype /Image /Width 8 /Height 16 /BitsPerComponent 1 /ImageMask true /Length 17 >> stream ™ff™™ff™™ff™™ff™ endstream endobj 42 0 obj << /Type /XObject /Subtype /Image /Width 6 /Height 128 /BitsPerComponent 1 /ImageMask true /Length 129 >> stream ÿû÷ïß¿ÿÿû÷ïß¿ÿÿû÷ïß¿ÿÿû÷ïß¿ÿÿû÷ïß¿ÿÿû÷ïß¿ÿÿû÷ïß¿ÿÿû÷ïß¿ÿÿû÷ïß¿ÿÿû÷ïß¿ÿÿû÷ïß¿ÿÿû÷ïß¿ÿÿû÷ïß¿ÿÿû÷ïß¿ÿÿû÷ïß¿ÿÿû÷ïß¿ÿ endstream endobj 45 0 obj << /Type /XObject /Subtype /Image /Width 6 /Height 104 /BitsPerComponent 1 /ImageMask true /Length 105 >> stream ÿû÷ïß¿ÿÿû÷ïß¿ÿÿû÷ïß¿ÿÿû÷ïß¿ÿÿû÷ïß¿ÿÿû÷ïß¿ÿÿû÷ïß¿ÿÿû÷ïß¿ÿÿû÷ïß¿ÿÿû÷ïß¿ÿÿû÷ïß¿ÿÿû÷ïß¿ÿÿû÷ïß¿ÿ endstream endobj 46 0 obj << /Type /XObject /Subtype /Image /Width 8 /Height 128 /BitsPerComponent 1 /ImageMask true /Length 129 >> stream ÿÿÿÿÿÿÿïÿÿÿÿÿÿÿïÿÿÿÿÿÿÿïÿÿÿÿÿÿÿïÿÿÿÿÿÿÿïÿÿÿÿÿÿÿïÿÿÿÿÿÿÿïÿÿÿÿÿÿÿïÿÿÿÿÿÿÿïÿÿÿÿÿÿÿïÿÿÿÿÿÿÿïÿÿÿÿÿÿÿïÿÿÿÿÿÿÿïÿÿÿÿÿÿÿïÿÿÿÿÿÿÿïÿÿÿÿÿÿÿï endstream endobj 62 0 obj << /Type /XObject /Subtype /Image /Width 8 /Height 128 /BitsPerComponent 1 /ImageMask true /Length 129 >> stream ðñó÷ÿÿÿÿðñó÷ÿÿÿÿðñó÷ÿÿÿÿðñó÷ÿÿÿÿðñó÷ÿÿÿÿðñó÷ÿÿÿÿðñó÷ÿÿÿÿðñó÷ÿÿÿÿðñó÷ÿÿÿÿðñó÷ÿÿÿÿðñó÷ÿÿÿÿðñó÷ÿÿÿÿðñó÷ÿÿÿÿðñó÷ÿÿÿÿðñó÷ÿÿÿÿðñó÷ÿÿÿÿ endstream endobj 61 0 obj << /Type /XObject /Subtype /Image /Width 8 /Height 512 /BitsPerComponent 1 /ImageMask true /Length 513 >> stream ÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿ endstream endobj 63 0 obj << /Type /XObject /Subtype /Image /Width 8 /Height 62 /BitsPerComponent 1 /ImageMask true /Length 63 >> stream ÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇïÿÿÿÿÿïÇï endstream endobj 64 0 obj << /Type /XObject /Subtype /Image /Width 6 /Height 128 /BitsPerComponent 1 /ImageMask true /Length 129 >> stream ÷ûÿÿ¿ßï÷ûÿÿ¿ßï÷ûÿÿ¿ßï÷ûÿÿ¿ßï÷ûÿÿ¿ßï÷ûÿÿ¿ßï÷ûÿÿ¿ßï÷ûÿÿ¿ßï÷ûÿÿ¿ßï÷ûÿÿ¿ßï÷ûÿÿ¿ßï÷ûÿÿ¿ßï÷ûÿÿ¿ßï÷ûÿÿ¿ßï÷ûÿÿ¿ßï÷ûÿÿ¿ßï endstream endobj 68 0 obj << /Type /XObject /Subtype /Image /Width 8 /Height 110 /BitsPerComponent 1 /ImageMask true /Length 111 >> stream ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿï÷ÿÿþÿÿ endstream endobj 65 0 obj << /Type /XObject /Subtype /Image /Width 8 /Height 62 /BitsPerComponent 1 /ImageMask true /Length 63 >> stream ÷ûýþ¿ßï÷ûýþ¿ßï÷ûýþ¿ßï÷ûýþ¿ßï÷ûýþ¿ßï÷ûýþ¿ßï÷ûýþ¿ßï÷ûýþ¿ endstream endobj 66 0 obj << /Type /XObject /Subtype /Image /Width 6 /Height 62 /BitsPerComponent 1 /ImageMask true /Length 63 >> stream ÷ûÿÿ¿ßï÷ûÿÿ¿ßï÷ûÿÿ¿ßï÷ûÿÿ¿ßï÷ûÿÿ¿ßï÷ûÿÿ¿ßï÷ûÿÿ¿ßï÷ûÿÿ¿ endstream endobj 67 0 obj << /Type /XObject /Subtype /Image /Width 8 /Height 30 /BitsPerComponent 1 /ImageMask true /Length 31 >> stream ™ff™™ff™™ff™™ff™™ff™™ff™™ff™™f endstream endobj 69 0 obj << /Type /XObject /Subtype /Image /Width 8 /Height 78 /BitsPerComponent 1 /ImageMask true /Length 79 >> stream ýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿þýû÷ïß¿ endstream endobj 9 0 obj << /Type /ExtGState /SA false /SM 0.02 /OP false /op false /OPM 1 /BG2 /Default /UCR2 /Default /HT /Default /TR2 /Default >> endobj 85 0 obj << /Type /FontDescriptor /Ascent 750 /CapHeight 676 /Descent -250 /Flags 262178 /FontBBox [-168 -218 1000 935] /FontName /Times-Bold /ItalicAngle 0 /StemV 133 /XHeight 461 /StemH 139 >> endobj 86 0 obj << /Type /FontDescriptor /Ascent 750 /CapHeight 662 /Descent -250 /Flags 34 /FontBBox [-168 -218 1000 898] /FontName /Times-Roman /ItalicAngle 0 /StemV 84 /XHeight 450 /StemH 84 >> endobj 87 0 obj << /Type /FontDescriptor /Ascent 750 /CapHeight 653 /Descent -250 /Flags 98 /FontBBox [-169 -217 1010 883] /FontName /Times-Italic /ItalicAngle -15 /StemV 76 /XHeight 441 /StemH 76 >> endobj 88 0 obj << /Type /FontDescriptor /Ascent 750 /CapHeight 662 /Descent -250 /Flags 34 /FontBBox [-168 -218 1000 898] /FontName /Times-Roman /ItalicAngle 0 /StemV 84 /XHeight 450 /StemH 84 >> endobj 89 0 obj << /Type /FontDescriptor /Ascent 753 /CapHeight 562 /Descent -246 /Flags 35 /FontBBox [-28 -250 628 805] /FontName /Courier /ItalicAngle 0 /StemV 51 /XHeight 426 /StemH 51 >> endobj 90 0 obj << /Type /FontDescriptor /Ascent 750 /CapHeight 653 /Descent -250 /Flags 98 /FontBBox [-169 -217 1010 883] /FontName /Times-Italic /ItalicAngle -15 /StemV 76 /XHeight 441 /StemH 76 >> endobj 91 0 obj << /Type /FontDescriptor /Ascent 750 /CapHeight 676 /Descent -250 /Flags 262178 /FontBBox [-168 -218 1000 935] /FontName /Times-Bold /ItalicAngle 0 /StemV 133 /XHeight 461 /StemH 139 >> endobj 92 0 obj << /ProcSet [/PDF ] >> endobj 8 0 obj << /Name /T1 /Type /Font /Subtype /Type3 /Resources 92 0 R /FontBBox [-26 -26 90 90] /FontMatrix [0.01 0 0 0.01 0 0] /FirstChar 0 /LastChar 3 /Encoding 93 0 R /CharProcs 94 0 R /Widths [50 50 35 0 ] >> endobj 93 0 obj << /Type /Encoding /Differences [0/ru /ul /bu /br ] >> endobj 94 0 obj << /ru 95 0 R /ul 96 0 R /bu 97 0 R /br 98 0 R >> endobj 95 0 obj << /Length 65 >> stream 50 0 -26 -26 90 90 d1 0 J 2 j 4 w 10 M []0 d 1 i 0 0 m 50 0 l S endstream endobj 96 0 obj << /Length 69 >> stream 50 0 -26 -26 90 90 d1 0 J 2 j 4 w 10 M []0 d 1 i 0 -14 m 50 -14 l S endstream endobj 97 0 obj << /Length 133 >> stream 35 0 -26 -26 90 90 d1 1 i 40 25 m 40 36.04 31.04 45 20 45 c 8.96 45 0 36.04 0 25 c 0 13.96 8.96 5 20 5 c 31.04 5 40 13.96 40 25 c f endstream endobj 98 0 obj << /Length 66 >> stream 0 0 -26 -26 90 90 d1 0 J 2 j 4 w 10 M []0 d 1 i 0 84 m 0 -16 l S endstream endobj 4 0 obj << /Type /Font /Subtype /TrueType /FirstChar 37 /LastChar 122 /Widths [1000 0 0 333 333 0 0 250 333 250 278 500 500 500 500 500 500 500 500 500 500 333 0 0 0 0 0 0 722 667 722 722 667 611 778 778 389 0 778 667 944 722 778 611 0 722 556 667 722 722 1000 722 722 0 333 0 333 0 0 0 500 556 444 556 444 333 500 556 278 0 556 278 833 556 500 556 0 444 389 333 556 500 722 500 500 444 ] /Encoding /WinAnsiEncoding /BaseFont /Times-Bold /FontDescriptor 85 0 R >> endobj 5 0 obj << /Type /Font /Subtype /TrueType /FirstChar 37 /LastChar 146 /Widths [833 778 0 333 333 500 564 250 333 250 278 500 500 500 500 500 500 500 500 500 500 278 278 0 0 0 0 0 722 667 667 722 611 556 722 722 333 389 722 611 889 722 722 556 722 667 556 611 722 722 944 722 722 611 333 0 333 0 500 0 444 500 444 500 444 333 500 500 278 278 500 278 778 500 500 500 500 333 389 278 500 500 722 500 500 444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333 333 ] /Encoding /WinAnsiEncoding /BaseFont /Times-Roman /FontDescriptor 86 0 R >> endobj 6 0 obj << /Type /Font /Subtype /TrueType /FirstChar 41 /LastChar 146 /Widths [333 0 0 250 333 250 0 500 500 500 500 500 0 500 500 500 500 0 0 0 0 0 0 0 611 611 667 722 611 0 722 722 333 0 0 556 833 667 722 611 0 611 500 556 722 611 833 611 0 0 0 0 0 0 500 0 500 500 444 500 444 278 500 500 278 0 444 278 722 500 500 500 0 389 389 278 500 444 667 444 444 389 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333 ] /Encoding /WinAnsiEncoding /BaseFont /Times-Italic /FontDescriptor 87 0 R >> endobj 7 0 obj << /Type /Font /Subtype /TrueType /FirstChar 222 /LastChar 223 /Widths [556 556 ] /Encoding /MacRomanEncoding /BaseFont /Times-Roman /FontDescriptor 88 0 R >> endobj 50 0 obj << /Type /Font /Subtype /TrueType /FirstChar 38 /LastChar 121 /Widths [600 0 600 600 600 0 600 600 0 600 600 0 0 0 0 0 0 0 0 0 0 600 0 600 0 0 0 600 600 600 600 600 600 0 0 600 0 600 600 600 600 600 600 0 600 600 600 600 0 600 0 600 0 0 0 0 0 600 0 600 600 600 600 600 600 600 600 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 ] /Encoding /WinAnsiEncoding /BaseFont /Courier /FontDescriptor 89 0 R >> endobj 51 0 obj << /Type /Font /Subtype /TrueType /FirstChar 222 /LastChar 223 /Widths [500 500 ] /Encoding /MacRomanEncoding /BaseFont /Times-Italic /FontDescriptor 90 0 R >> endobj 55 0 obj << /Type /Font /Subtype /TrueType /FirstChar 223 /LastChar 223 /Widths [556 ] /Encoding /MacRomanEncoding /BaseFont /Times-Bold /FontDescriptor 91 0 R >> endobj 1 0 obj << /Type /Page /Parent 10 0 R /Resources 3 0 R /Contents 2 0 R >> endobj 11 0 obj << /Type /Page /Parent 10 0 R /Resources 13 0 R /Contents 12 0 R >> endobj 14 0 obj << /Type /Page /Parent 10 0 R /Resources 16 0 R /Contents 15 0 R >> endobj 17 0 obj << /Type /Page /Parent 10 0 R /Resources 19 0 R /Contents 18 0 R >> endobj 20 0 obj << /Type /Page /Parent 10 0 R /Resources 22 0 R /Contents 21 0 R >> endobj 23 0 obj << /Type /Page /Parent 10 0 R /Resources 25 0 R /Contents 24 0 R >> endobj 26 0 obj << /Type /Page /Parent 10 0 R /Resources 28 0 R /Contents 27 0 R >> endobj 29 0 obj << /Type /Page /Parent 10 0 R /Resources 31 0 R /Contents 30 0 R >> endobj 39 0 obj << /Type /Page /Parent 10 0 R /Resources 41 0 R /Contents 40 0 R >> endobj 47 0 obj << /Type /Page /Parent 10 0 R /Resources 49 0 R /Contents 48 0 R >> endobj 52 0 obj << /Type /Page /Parent 57 0 R /Resources 54 0 R /Contents 53 0 R >> endobj 58 0 obj << /Type /Page /Parent 57 0 R /Resources 60 0 R /Contents 59 0 R >> endobj 70 0 obj << /Type /Page /Parent 57 0 R /Resources 72 0 R /Contents 71 0 R >> endobj 73 0 obj << /Type /Page /Parent 57 0 R /Resources 75 0 R /Contents 74 0 R >> endobj 76 0 obj << /Type /Page /Parent 57 0 R /Resources 78 0 R /Contents 77 0 R >> endobj 79 0 obj << /Type /Page /Parent 57 0 R /Resources 81 0 R /Contents 80 0 R >> endobj 82 0 obj << /Type /Page /Parent 57 0 R /Resources 84 0 R /Contents 83 0 R >> endobj 99 0 obj << /S /D >> endobj 100 0 obj << /Nums [0 99 0 R ] >> endobj 10 0 obj << /Type /Pages /Kids [1 0 R 11 0 R 14 0 R 17 0 R 20 0 R 23 0 R 26 0 R 29 0 R 39 0 R 47 0 R] /Count 10 /Parent 56 0 R >> endobj 57 0 obj << /Type /Pages /Kids [52 0 R 58 0 R 70 0 R 73 0 R 76 0 R 79 0 R 82 0 R] /Count 7 /Parent 56 0 R >> endobj 56 0 obj << /Type /Pages /Kids [10 0 R 57 0 R ] /Count 17 /MediaBox [0 0 612 792] >> endobj 101 0 obj << /CreationDate (D:20090603204343-07'00') /ModDate (D:20090603204343-07'00') /Producer (Apple pstopdf) >> endobj 102 0 obj << /Type /Catalog /Pages 56 0 R /PageLabels 100 0 R >> endobj xref 0 103 0000000000 65535 f 0000244719 00000 n 0000000016 00000 n 0000010056 00000 n 0000242232 00000 n 0000242708 00000 n 0000243256 00000 n 0000243757 00000 n 0000241340 00000 n 0000239772 00000 n 0000246213 00000 n 0000244800 00000 n 0000010194 00000 n 0000021753 00000 n 0000244884 00000 n 0000021881 00000 n 0000034738 00000 n 0000244968 00000 n 0000034856 00000 n 0000046033 00000 n 0000245052 00000 n 0000046162 00000 n 0000055850 00000 n 0000245136 00000 n 0000055989 00000 n 0000069341 00000 n 0000245220 00000 n 0000069470 00000 n 0000080460 00000 n 0000245304 00000 n 0000080599 00000 n 0000099539 00000 n 0000234509 00000 n 0000235238 00000 n 0000235047 00000 n 0000234778 00000 n 0000235507 00000 n 0000235706 00000 n 0000235889 00000 n 0000245388 00000 n 0000099785 00000 n 0000122712 00000 n 0000236558 00000 n 0000236403 00000 n 0000236158 00000 n 0000236827 00000 n 0000237072 00000 n 0000245472 00000 n 0000122950 00000 n 0000132329 00000 n 0000243931 00000 n 0000244373 00000 n 0000245556 00000 n 0000132493 00000 n 0000143633 00000 n 0000244549 00000 n 0000246466 00000 n 0000246350 00000 n 0000245640 00000 n 0000143764 00000 n 0000177072 00000 n 0000237610 00000 n 0000237341 00000 n 0000238263 00000 n 0000238464 00000 n 0000238984 00000 n 0000239185 00000 n 0000239386 00000 n 0000238733 00000 n 0000239555 00000 n 0000245724 00000 n 0000177388 00000 n 0000194407 00000 n 0000245808 00000 n 0000194546 00000 n 0000205207 00000 n 0000245892 00000 n 0000205346 00000 n 0000216700 00000 n 0000245976 00000 n 0000216852 00000 n 0000225872 00000 n 0000246060 00000 n 0000226001 00000 n 0000234380 00000 n 0000239912 00000 n 0000240114 00000 n 0000240311 00000 n 0000240511 00000 n 0000240708 00000 n 0000240899 00000 n 0000241099 00000 n 0000241301 00000 n 0000241557 00000 n 0000241628 00000 n 0000241694 00000 n 0000241810 00000 n 0000241930 00000 n 0000242115 00000 n 0000246144 00000 n 0000246172 00000 n 0000246558 00000 n 0000246682 00000 n trailer << /Size 103 /Root 102 0 R /Info 101 0 R /ID [<0d94d9ea62b94f9b62e24b66524dea15><0d94d9ea62b94f9b62e24b66524dea15>] >> startxref 246754 %%EOF