Experience with Transactions Frank Schmuck Jim IBM Wyllie Research Almaden Division Research Computer in QuickSilver Science Abstract Center Department environment nity All programs in the QuickSilver distributed system be- for for a subset several QuickSilver was designed have atomically with respect to their updates to permanent data. Operating system support for transactions phisticated provides tem service are vice is local or remote. the framework as a mechanism ter failures that the a general purpose plete system based are of their many system extensibility and in an efficient of the problems and that introduced tions all or parts prematurely tion by the user, computation The is was search Center tem/6000 kernel for for IBM and local interrupt QuickSilver Almaden, with servers runs and IBM RT-PC and by server using used and other processes. of about system Clients acsys- the ser- a dis- many servers the system appropriate client state, computation ac- etc., end when or termi- problem, a machine so- for such that to take recover write other with among com- interven- participating in the associated ple, the Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Maohinery. To copy otherwise, or to republish, requires a fee and/or specific permission. @f 99J ACM C).8979J.447+19J 1000910239...$J .SO tem order import existing that and that its own of this paper with a dis- computation before the trans- commits. used it pervasively necessary to ex- for exam- only volatile be a complete development, from programs will by maintain to programs quantitatively system of a transaction, environment purposes itatively made QuickSilver hosting of necessity transactional 239 for supthey of the are This servers for that file i.e., contrans- to the state computation notion to accommodate suitable part sys- the the performed transactions traditional In any the system. implies The if the the in servers QuickSilver completion, with QuickSilver, state. the successful for of updates the as in provides operations computation serve runs system infrastructure of all to from management atomicity the it program The is that transactions extended every In particular, before of QuickSilver of resource effects the tend computing all QuickSilver throughout at for undo In IPC. notion and maintain. action ser- characteristic management tributed 40 machines primary any it is vital servers to interfaces of whether to a software the transactional fails linkage network-transparent as the Sys- a small communication All easy or using be split or when domain, In port Re- RISC contains management, handlers. on a network has been IBM It for of transactions. action operating Almaden interprocess thread are implemented municate the of workstations. provides process installable vices the distributed at commu- crashes. used tem. experimental it the associated Hence due borrowed method developed families that (IPC), an will distinguishing has text that research operating distribution. Introduction QuickSilver State of a distributed database system make regardless resources, nate for same a mechanism to release to processes, the machines. and it 1 starting Examples mea- local programs; computation provide a com- means by files, on different the transaction powerful distributed tributed in some with QuickSilver and paper presents on transactions. used af- purposes experience use demonstrate provides solving our This these cessing as well of resources for system from this, termination. operating transactions mechanism reclamation process learned running surements to support use of transactions lessons of how unifies or normal evaluates of the required of our years. other it systems. sysmust This must be able little or no modification. are how to describe transactions to run both are in a qualused in QuickSilver in our and approach management The remainder describe of the how usage the we show local network. of transactions. our experience discussion of examples and of how day-to-day transaction next section present QuickSilver, work We imple- in the system, The with of related is purposes We then the overall QuickSilver in communication drawn Quick with close a conclusions. the make in Management requests of operations that represent recovery. Transactions erability, and are to used volatile, same isolation way. In a (possibly failure [8]. manage so these a unit provide are atomicity, not an as nonin the encapsulates that isolation, toolkit that several allows services properties system text of or any that subset The that updates respect action the vary QuickSilver commits, short by and but exact among by file made the the the falls of full The QuickSilver sists of several pieces: . transactional IPC, ● a transaction manager, ● a log manager. of in the conattached different servers, are ensures atomic once a degree de- of a ser- example, permanent with the trans- of consistency serializability. transaction in will the briefly remainder of this toolkit con- component An of the earlier toolkit paper LFollowing the terminology introduced by Gray et al. [6], QuickSilver file system provides degree 2 consistency for file dates and degree 1 consistency on that may creates processes that its TID.2 Thus, in order to servers a have a fulfill The destination from CM the registers The CM of network IPC processes with flows its back process on the cooperate and errors. to the destination response routes to its peer transport transaction the request (See Figure two makes kernel manager communication the the the request The details a transaction server, communication sends machine. intermittent in a remote recovery The remote local kernel and server using local the same path. along 1.) t iation and termination of transactions, Transactions are created by an IPC request to TM. TM assigns a globally unique TID and registers it with the kernel. The process that created a transaction may call conmit, and any participant in the transaction may call abort. Servers that support recoverable state must undo changes to their state upon transaction abort, or make those changes permanent at commit. The primary ticipants in a transaction. When a server process offers an IPC service, it speciclass, which determines the protofies a participation and section. restriction purpose of TM is to coordinate the decision to commit or abort among all of the (potentially distributed) par- management each process containing participating to to the local col describe The the a transaction of a transaction. local used sion We more Transaction Manager. The QuickSilver transaction manage~ (TM) is a server process that handles the ini- QuickSilver is done for a among semantics a transaction are as part (CM). CM traditional implementer system, it provides that to choose Although made to failures, servers consists providing all computation may on choices vice. and to transaction, to a transaction pending QuickSilver transactions. enforces of some clients related in other the request IPC. in in of some trans- enforces as are request request forwards management behalf. upon a process IPC to handle provide maY of these. Transaction IPC call requests When an transactions applicable of work recoverability, recov- as well a transaction unit and atomicity, resources QuickSilver distributed) of consistency In QuickSilver, properties manage- toolkit is a collection failure volatile on its may client a transaction kernel participating is a participant, received terminology, The processes transaction Silver database the must be done on behalf request. only server In of transaction describes action. There is no escape from this aspect of t ransactions in QuickSilver. Every IPC request carries with it id (TID) identifying the transaction that a transaction that Transaction and Transact ional 1P C. IPC in QuickSilver follows the request-response paradigm. It is similar to IPC in the V system [4], except that QuickSilver IPC requests may be made 2 architecture made asynchronously. A unique feature of QuickSilver IPC is that it is transactional; that is, all interprocess quantifies lessons and our presents ment detail. as follows. management Next failures resource system. is organized measurements on our cost from paper and to unify operating are used for various present successes transaction in QuickSilver. transactions then the transactions in a distributed first mented to assess of using [10] by TM of transactions purpose of having to contact that several commodate the transaction mechanism. varying the have server called participation demands The class at that the classes servers no-state conclu- service. place The is to acon the is intended the 2The up. directories. 240 actual kernel protocol is somewhat more complex [10]. Figure for stateless servers of transaction single up notification volatile of such the ceive that state their commit participation a process commit or abort, information for class. the list quests such CM of on perform detects tion of TM or machine transactions abort. There are the which ending commit failure, failed link accepts re- buffers all their the 3 then no- cluding that cycles arrive migration in the at These and issues to asks ‘CM IPC For peer poses. each ● If any after replication it has of the optimizations are discussed will even- processing, late in- some use the length A server point by LM to that disk. The among log. of Transactions apply site of failures, event undoing notifying ● synchronizing and transactions servers of the In access against to shared of using are described section we explain application of pur- inconsistencies termination, system and a variety as follows: in of changes, of client advantages this detail data a collection purpose for be categorized persistent more of can the [10]. prepared, exploits These illustrate programs them and data. transactions in each with an in a genearlier of these examples implemented paper uses in of servers in QuickSilver. in ceitain [10]. Failure atomicity. While data stored on a magnetic disk are not lost when a machine is rebooted or experiences a power loss, such data are still vulnerable to failures that occur while it is being is because partially completed updates transitions in an inconsistent during servers request is shared Log Manager. The QuickSilver log manager (LM) implements the abstraction of a record-oriented appendonly file. TM uses the log to recoverable record the state of transactions from may be forced managed guarding eral requests coordinating elsewhere that ● all non-prepared become that to storage ● communica- graph, disk QuickSilver re- recur- processing. commit compu- for checkpoints, to its par- or machine participation a server and/or a transaction, cases. subtleties up of arbitrary in memory. Advantages Many many Long-running of transactions. log records them records all servers sent a permanent that LM and and collects remote or abort it insures the its independently in two-phase TM has completely of changes. use the log as a repository section. TM it could physical transaction. that it considers using tually to a collection tations those from the kernel, is a participant, requests local what a full local server according CM machines behalf machine, sively ‘If or abort a servers primarily next all only differ of servers in the tifies each participating ticipation require Examples in QuickSilver varieties which servers, IPC to clean several at which are given calls IPC participation are classes, state, [8, 14]. at require has ended, There Other classes notification servers processing recoverable protocol When hold. notification. maintaining no Some participation during commit require a transaction they one-phase point that termination. 1: Remote the two-phase commit protocol. The file system uses the log to record changes to its metadata, in order to be able to atomically commit transactions by undoing 241 state. Database modified. This may leave data systems use atomic to restore data consistency after a failure the effects of partial updates (i.e., transac- tions in progress at the time of failure ponents are aborted). of a program. for each such These techniques purpose part can system. A text of a user’s a new first name been Unix3). it only a crash option to ad hoc many The ports and DFS the transaction. by the [3]. transaction are created by files that were deleted are or moved call after no need ● The clicking and the of this to worry commit not leave commit window benefits be lost if users cases when only some file atomicity by in a directory The Since across files a crash a machine a new part on a user’s during in an inconsistent QuickSilver provides that users large allows program network. ing a set sequence to build in parallel The of a parallel ● pmake rules, several using program each of commands idle building The ● does of must By applica- copies. aborts Af- its trans- implement extending a dis- the notion servers that maintain only to use transactions as a uniand resource terminates: window destroys manager by the manage- and all windows explicitly program. terminal associated server with output Taskmaster the closes terminal program (e.g. connec- standard in- ). — the server processes and loading processes created The of a in our a command the regardless contain- one of the advantage is that or method com- the AT&T. responsible programs by the using for — destroys creating any child program. transactions mechanism of whether clients is used are local for this for all would have recovery, to separately case. the in TM By difficult once If ad class, each such be extended to work using transactions issues and purpose resources or remote. were used for each resource distributed be implemented 242 of same hoc methods resource is a trademark toolkit protocol. when a program virtual put in S Unix simplifies (pmake) machines a file The tions This components reads describing for facility transaction created or unbootable make only but also and cleanup. To supacross multiple machines, the the system. state. ● not failures, undone. for notification of the upgrade mechanisms local working ment throughout this machine. a system obtaining notification of updates commit notified distributed version restart one of the or is rebooted. that fied mechanism ● to install safely when a is The following are some examples of volatile servers that use one-phase variants of the commit protocol to be had might machines, to about mechanism of transaction to include volatile state, it is possible mov- window. at all. tributed is to another recovery are automatically QuickSilver before there permit crashes from worrying undo Termination port atomicity copy. easily pmake elsewhere by killed) action. Any partial updates that may have been applied to source files or metadata on the file server or the user’s in QuickSilver. system that and generated pmake space left on the file server, etc., check were atomicity or when or none are used QuickSilver ensures about was moved happen Transactions would rarely) guarantees cannot that the machine on a name places state, deleted, respectively; backup one of interface (even system are returned on utilities from directory files files before by pmake set of files, thereby modified are object was behind, ter modifications have been made and tested, the files are transferred back to the file server (check-in). If any problem is detected during the check-in procedure, e.g. a file was not properly checked out, there is not enough example: it to a different end up in two ● a separate mouse style of the rely For to disk, desktop dragging not machine ion a file a subdirectory and will directory begin-transact to write on local updates original by created tion programming. For example, QuickSilver provides a source control system (check) for maintaining program source files on a file server. A user may check-out a or name. by DFS. QuickSilver ing serve as an file in- files are left permits Transactional sys- were and used sup- to the that restored, Undo. a transaction to their applications writing machines (DFS) transaction to a different provided Editors files the directory QuickSilver and made all returned were original When also that, no unwanted file. in its file on disk failures. (e.g. and is used ensures lex) of commands free programmers that temporary completed It a sequence This is killed, as yacc work that preserved. in with this useful bur- system are safely Thus, ver- of the avoids guarantees all changes while compile are reimplemented jile DFS that ● new the editor recovery distributed typi- (e.g. such transaction sequence. of pmake results preprocessors fs ync version Quicksilver files Many start the an instance termediate a different that old lose editors by calling by providing undoes guarantees Therefore, of the file under the when of writing (e.g. to subsequent aborts, to their middle access to files and directories by renamed could insuring transactions due in the mechanisms machines of committed a general example, the user must QuickSilver in after recovery transactional useful to disk applications. remote be lost for retrieve on applications tem. editor, to disk. written After a special Similar very if it crashed of the file delete has within be save the old version and sion den file version cally also A separate command for of distribution all. for all can The parent stance, of a process may of this are commands instance of pmake actions created all commands will started be on a remote by started it is still by pmake will be terminated If a user kills As thus eliminating Iike an tools time the problem transactions To This machines interacts designated requests available, from then a remote job. server that and monitors also tracks many remote of a particular started. The able to be able uler knowing when this purpose the in the transaction This simplifies not need to make when a job tified even fails and before its idle tory. tries is not only but these jobs depends on the job other execu- running the interface (pmake callback that of pmake to the the that directories. The choice the the remote by to backup management simplify especially when volved, as in our example and the scheduler need problem more for all resource of distributed than two files noti- parties are of parallel make (both to be notified when a remote not injob This (no lost (full files (and corresponds they are ready a very long write degree all un- that wait until time). a file backup are held to be program. locks to syn- as soon until as a transaction 2 consistency reads, requiring for files the to to allow no dirty If programs have and is best locked are released to and Applications releasing other by the read locks serializability) files utility. remained would locks write updates repeatable). tency pmake while read may individual (potentially uses both en- that introduced it is undesirable access; directory 1 consistency for read for a direc- degree ended, it is being DFS file is closed, framework the fication, hand, to read of a backup files two name, terminology program completed file commit. as a unifying policy transaction while chronize the only deleted. prevent same to read provides those or entries required but for reads degree can delay corresponding if serializabil- by a transaction to backup even a directory to the for clients example update Therefore, is no- ends. Transactions the backup modified a remote the full on sysdesir- in progress. created, a file DFS of locking still enforce a lock changed [6], by On the other does scheduler for wanted scheduler started et al. read not are not According Gray til For as a one-phase uses to run abort. been on a Unix of a directory directory locks environment, It is also often is renamed, it is possible have by files sched- has terminated. participates Thus, illustrated were does obtains file Unix- by unrelated directory contents renaming read an a transaction on individual from that later DFS such directory example. the itself but standard /tmp by DFS locks example, time, are currently ensures the job decision reason Write three machine to list Instead, directory QuickSilver to run In the modified if the for the desire system an extreme transactions to use to run where an explicit ends), an idle and scheduler if the instance of remote jobs pmake the state machine remote scheduler job. until algorithm each or this ity. scheduler. two and keyboard user, selection the bases load how on behalf scheduler as CPU on It accepts which of computations, execution runs waits pmake The example mechanism. remote remote pmake, tells on such factors server running the machines another notification on the same network. machines job for with is a replicated tion provides as a distributed select pmake facility is common; been policy applications. provides For make by our use of a file tem it has parallel and programs of “orphans”. The of concurrency was driven simultaneous a result, at that choice system all trans- be aborted. machines Our in- example in progress4, at remote as well, for A good by pmake. while running Taskmaster, machine. are 3 consis- closing their locks) until read to commit. ends). Because Concurrency niques Concurrency control. such as locking to synchronize are used in database access to shared the problems control data of “lost updates”, While [8]. “dirty most in order tech- locks systems mote) to avoid Unix reads”, and “untransaction sys- currency be shared participating associates 4 This file will soon identical is file policy. actually contains fail as they error to more an compile. notice such frequent error, all Users an error, than one modules that typically kill to prevent might think. include that a parallel a flood If of transactions, among all in transaction. the locks with processes a process (local In its or re- contrast, on a particular system. a QuickSilver header make file on behalf cially when data consistency in the presence of failures is a concern. This leaves the question of how existing programs (e.g. programs ported from Unix) fit into a transactional header locks Porting existing programs. We have given a number of examples of how transactions simplify writing new, potentially complicated distributed applications, espe- vary great ly among applicat ions. Therefore, allows each server to implement its own concontrol can holds machine. repeatable reads” tems use a locking policy that prevents lost updates, not all systems implement or enforce full serializability [1, 6]. In a general purpose system synchronization requirements QuickSilver DFS as of essentially messages. it starts. program exits normally. runtime 243 creates cess that The library a default This normally, or QuickSilver uses the transaction transaction TID aborts for commits if it pro- when terminates implementation of the each default of the ab- the transaction C Read/Write Read-only Committed (89.37%) 4507 (2.67%) Aborted Table makes calls explicit it calls done by the fault transaction. Hence, o 162680 (96,21%) (0.08%) o 4635 (2.74%) 1775 (1.05%) These of its (1.05%) 1775 (1.05%) during a one week trace odically all work on behalf 1775 observed a program manager, is performed (6.91%) of transactions unless to the transaction program 11685 (92.04%) 1: Number generates. (6.83%) 0 155630 Total IPC 128 o Unknown in the 11557 151123 Sometimes this to transaction, purpose the we shell. action will subsequent mands added Users that allow this several from transaction may from transaction, programs, a new default and for ing com- the results or aborted when program QuickSilver can Unix utilities Unix for have success run binary taken the contain the atomically when of AIX/RT5, These to deal default images from RT-PC. no code of with run many binary yet of obviously they be- for to at of Transaction actions in the actions that period DFS ● in To do this, generate timestamped The name information of the usage system, created of a week. to the QuickSilver were transaction. ● the actual program patterns we traced our local trace traced that of transall network we instrumented vs. aborted server in if they for and the status uses trol its the transac- determine tion, that most the dian of file system activity performed on its a record of all transaction ticipation ● the protocols, outcome participants and their transaction Section of the transaction. eral is a trademark of IBM included log to con- read-only records to or standard transactions 92%), used this by optimiza- performance. within in trace lifetimes. were lifetime ended shows Corporation. 244 3 asserts purpose of client 5 AIX trace not records The long-running. was 0.2 two seconds we could data seconds; and showed The 80% meof all 90$Z0 within 69 seconds. par- and (commit/abort) system transaction transactions transactions behalf, ● the timestamps also amount [14] For commit” most These the rebooted. protocol no to a deter- lYo). when machines (about good not (about requires Since considered changes could progress “presumed read-only for were processing. protocol the transacrecoverable any data abort” algorithms. is essential the of com- two-phase when commit this are in lost “presumed distributed unlike em- 1 summarizes distribution transactions data includ- to terminal to make still were every Using the of some over tasks vs. read/write trace trac- programs, the only of the or buffered While produced so transactions transactions TM tion shows the primarily of 19419 Table attempted Analysis QuickSilver included created was of transaction to games and read-only QuickSilver, two-phase a and is currently be written, transover TM records trace QuickSilver overhead. different dialers. transactions, understand 135 telephone system. addition Creations least traced the as normal, of 37 machines compilers DFS ended, Usage To better on a the reduction active, The from tions. mine Measurements system records. represent 4 peri- running collected Data no noticeable mitted file was the trace read/write on QuickSilver. trace a total observed, common the enabled, transactions version images transactions, a file. and was completed. development. 1.5 million transactions, IBM’s in server server used introduced was ulation of them week ing everything a measure trace trace tracing community tracing for desired. As saved after the user trans- Other therefore to be committed During For transaction the shell. The in memory, under script. commands create as the started programs a shell control explicitly be used programs of several to run especially buffered to a centralized and (1 OO.O%) trace were machine. buffers it is desirable same 169090 records sent dedicated de- performed the Total Unknown that signaling termination. the distribution transactions mechanism In support of the are for of this number useful as a gen- notifying claim, servers Figure of servers noti- 2 I I number of tra nsactlons number of transactions ,,, . ,., 0,9% m 3456789100rrmre 012 3 —.. .... 1 2 34 56 34 1 37 * machines per transuctlon - servers per transaction Figure fied during counts 2: Number of servers transaction do not termination include remote CMS on each machine that The three relative transactions participation mote The of the analysis useful work. system, majority latter type, pmake. our These do include following to plus necessary for Since analysis, actions figures participant number due trace and or careless re- library The transactions (89~0) two in this transactions of transactions out in the obscured trace sources section6. account (see The for Figure transaction access no-state commit only data in Section that is repli- 6, the standard substitutes when servers, protocol, a separate contacting replica top- servers), transactions created or otherwise terminates server cat e- using these by a program before that interacting is killed with any transactions. Quicksildue The average number overwhelm- As many were transaction. There shell records before to only in the transparently was 2.53. the contact be explained transaction aborted and ● perform two the used per sources: to participate (as will 1/0 pro- unnecessarily programming. we filtered to into in created transactions to these presented do not cated num- no commit fall inherent by shortcomings these a high appear transactions transactions caused with therefore overhead of these showed or 2170) which These data used transactions ● the of machines legitimate transactions ● which corresponds participant, processes the the participants. participants CM (43132 unavoidable to inefficient ing two but has transaction one remote of our participants, gories: ver processing. TMs, 3: Number level of transactions tocol no at had Figure transaction communication. first ber peak that per of the and results from 2.7% of the 2) and are of trans- the calculating remaining in zerototal due to the termination actions. such loader, range file specialized terminal emulation, bugging services, and works, among tification The in the 245 utility that mentioned manager, applications desktop Together in a single of QuickSilver communication mechanism these already, and program providing print management, with is heavily used trans- de- foreign facts indicate used for server netthat no- in QuickSilver. distribution aborted others. transaction servers servers window per participated feature from system, to more notified 15 different service, the transaction 6 A total of 38560 transactions, all of which were short-running committed transactions, were filtered out. Since these transactions had no participants, their only effect was to increase the tot al count of short, committed, single-machine, read-only transactions. were signaling These as the of servers as 67 servers of the transactions of transactions number of shown in for failure machines Figure involved 3 illustrates cleanup. Clearly, Test AIX description time QS time QS time (1 txrl) 100 empty files locally 0.027 per file 0.065 per file 0.127 per file Create 100 empty files remotely 0.054 per file 0.085 per file 0.187 per file Create 32 256k byte files locally 1.160 per file 0.645 per file 1.012 per file Create 32 256k byte files remotely 1.972 per file 1.752 per file 2.228 per file Read 32 256k byte files locally 1.044 per file 0.666 per file 0.672 per file Read 32 256k byte files remotely 1.338 per file 1.520 per file 1.554 per file 100 times 0.053 per run 0.098 per run Table mechanism held by ing to fairly mands program locating by freeing must to abort were operation the were although of scalThe frequently transactions observed to have under resources be capable computations. pmake, programs of common and distributed transactions started different null computation widely complicated the 2: Comparison for a failed week served the source requests we gathered transaction code control on 4 occasions, check-in operations. but they ver file show that system is available the permits to be much adapter com- by of local source than it would fact control have the goal of the provide Quicksilthat Silver would how not were after were after use on able to observe difference measured this difference is computed time including IPC for QuickSilver a trivial local system calls three IPC small two is about 350 microseconds on an RT-PC7. for a remote is about QuickSilver, tations due which on similar to support latency (1.3 is not as good hardware [17]. for ms IPC transactions, per packet) and Further, base. The request-response and trip time before IPC. task switches, The round- 6.5 milliseconds as other The MIPS. ~o&l We remote than of the is not IPC those such Rather overall to for provide of various toolkit; [10]. is a complete a pieces analysis the effect on on system hosts In our its own has intent is to of transactions same system on additional impression, QuickSilver perform representative Andrew file system against AIX AIX used were RT-PC and chines, and all tests the requiring file system a single The more than performance the transactions results of these for tests operations machines used Disk con- identical on all ma- ring was used machine. tests for perwere of memory. token one to the the tests file All were /see transaction individual test. adapters on the time Unix Remote 8Mb this tests and we ran The protocol. 4Mbit atomicity [11] to measure 125s with same Silver operations 2.2.1. NFS network using using version the the to quantify performance operations. appli- Quicksil- we measured benchmark model trollers on Unix: simple of complex similar namely two en“feels” though To attempt we ran and QuickSilver even function, subjective it has a commudevelopment running hardware, of its file system. under in that program use of the system, as a Unix the provides were The run entire each appear for Quick- twice, once and once test, repetition in the in Tables 2 and 3. implemen- difference is not The only file operation but rather to the high forms QuickSilver of the RT-PC token ring to the management or no disk TAn RT.pC however, guarantees run Thus, monitoring. 570 for local a fairly more performance transaction an idea formance operating operational. performance from of performance. participation just Quick- a discussion were no of the elsewhere of users and ver in system the transaction The round-trip to of its pieces introducing pair, without be into performance. QuickSilver nity to be otherwise. transactions impacts added many of complete support Transactions we be transaction system the introduced to as a process reasons. undo Performance of of CM engineering section, analysis presented system application of Transactions evaluation costs support QuickSilver been both Our software relative as responsive System for of this detailed cations Effect in seconds) IPC. vironment. 5 (times implementation kernel transaction are small, of the The code we ob- 14 committed capability to our the estimate 65 QuickSilver and outside most check-in numbers in practice. the simpler with of these undo is used data, to abort compared Both and aborted. trace system – AIX The In the txns) Create Run any (sep 125 is rated at between 4 and 5 DhwStOne 1/0 AIX for this to disk mitting transactions. test. and file pool, QuickSilver, metadata These significantly creation of its buffer file data 246 where is the local of small AIX outperfiles. requires however, to the log before numbers give Due little forces com- an indication Local AIX MakeDir copy of the pure tical impact tions spend created all their and as temporary this files overhead. Our ver is faster but slower of these than differences 91 334 376 348 506 517 time file 416 system but have since small files. prac- Also, data AIX data to support benchmark is CPU ferent linker than QuickSilver, of the Make for the ference for transactions the time the to load absolute The time time the percentage and overhead run a trivial magnitude to spent load of the real reading is also program. time programs the noticeable is dominated from by disk or to faster client Silver uses transaction only, other files points is barely one transaction per file. no log [14], for optimization which will Many 2. The whether Quick- entire test transactions and or are DFS of the can presumed DFS from exclude commits using one transaction time in Table or aborts. per file written of the tests. one ● use the abort them All ● In contrast, and compiles and links all files grep (Make). and are a number case AIX. due to client consistency project. the presence the times buffer or absence reported replacement differ of in Ta- strategies, between sophisticated the two file were and file sys- memory it to reuse program man- the without pages refetching system. run on a shared token ring during been in hours. systems months virtual allowing loaded the working file for used or years; for the test therefore, had their free space use was fragmented. Despite pool fills. last tests The ● all give these on system making 8 In this phase 247 caveats, an indication fact, phase the behave in the benchmark loading that overall performance increase repeatedly we believe of the programs a significant wc (ReadA1/), The advantage cache dif- local under to implement because affect QuickSilver, from normal The Andrew benchmark (Table 3) creates a directory tree (Ma.keDi~), copies a set of files into the directory tree ( Copy), runs 1s to list the status of all files (Scanby running than sizes, has a more that file not of the algorithms than actions each pool layout ager than scans in the in- the 3: AIX ments Dir), other of a previously the second buffer a focus files, tems. the test. (2) The log is on one of the disks used for storing files, so additional seeks are required. (3) The forcing of file data blocks occurs synchronously rather as the file system chose files in DFS a separate loading has an added AIX locally, read- of reasons for this: (1) Log forces must occur for each file, rather than a single log force at the conclusion of asynchronously AIX case. does individual and of to be (2770 faster program We behavior 2 and disk has a large effect There AIX not factors Buffer ● since it does not need to know the transaction on the running by the these is required, phase of the protocol, whether of interest affected Since activity commit-read-only protocol were benchmark runs the results the across bles to read of remote transactional are several time case, caching. for overall 270 in the remote Silver each a dif- compile performance the benchmark QuickSilver protocols network. There Quick has the binaries The of the wc for AIX ran identical and phase between caching is small. in the local and since we only QuickSilver can be attributed NFS Fortunately, difference programs in the Since of grep bound; using outperform 37% remotely). stance in seconds) QuickSilver. ReadAll In the remote A significant and show significantly in QuickSilver. phase on AIX 570 of AIX Only Neither (times of the within size, off disk, network. QuickSilver the benchmark suffer Quicksil- on and the and compiler in many is that AIX part files such do not than under applica- of moderate faster across little few transaction, on files at moving 434.5 benchmark by the compiler, is related 42 328 a single data 25 Compile of these AIX 2 33 57 slightly at moving 5 16 35 creating interpretation 1.5 27 operations is actually 3 14 56 within created For QuickSilver cases. time QS time 30 performance, destroyed files time 41 overhead, on system AIX ReadAll 3: Andrew transaction Remote QS time ScanDir Total Table files time and spends grep than uc. our does not of common more and measureof trans- support atomically cost our impact half claim cause operations. of its time in 6 Lessons Over the great deal plications Learned past several of experience and experience proven to bust distributed been concept of the lessons QuickSilver itself. In and positive; In those were due we learned using ap- for cases writing where due ro- building and tion; processes command take transactional Most QuickSilver client added by transactions. together shell scripts Small changes teractive permits them If files all default until the files would crashed be to to disk. work the better the however, is better all obvious used solution each servers process that must units of work to however, require example illustrates system, termination Our straightforward within more this. of the In default to extreme atomicity system is due provide atomicity. because we felt [2]. to the it provided Indeed, the the transaction open files should head due to transactions to that in the in such level of the be closed. trans- of function, for file to a file system present only but for Quick- file system signaling The implementation this older window A sub- we made a possibility mechanism serwith of the choice to build precursor files. complexity design is also of the to providing a useful system inter- sending its clients to individual code TM. for the uses all is devoted We elected file uses to provide The directly used similar server it that which toolkit it receives from of an X server sockets changes of this created TID signalled is DFS, to undo part Generally, cations that need non- been mechThe transaction for for necessary the versions we have plications of the more design. ability Silver. anyway. earlier other records that required TCP are one extreme when that on server simply request for Quick- the At It window work the that over- file system write robust was manager. each of as a notification careful but depending toolkit IPC the to the clients follow clients. notification when its a non-atomic would to identify Some the applica- applications the the destroys windows actional approach, existing and is comparable the it functions is sim- is dificult greatly, manager. with or abort stantial would This associated close to its window vices of the transaction as pospop threads, porting At interface, are single-threaded of transactions lowing library multiple the time alternative transaction. traditional anism, An available the has disappeared. add a means 1/0 transaction process a text and like a server of the ftp. daemon as simple parameter. as transactions. uses ftp servers servers varies con- of these each routines of all using cases it has been recoverable These to be performed the for was with transactional in making with accessed all to push to poli- Similarly, to a standard own of which if the this library. suited being yet, transaction transaction its from rebooted. interfaces need almost In most the reason terminates. protocols actions under locking to make TID This perform utility the Worse a library for programs might tions, transactional benefit a commit correct example, created files To make C stdio an explicit which were daemon, transaction. change include simple complex each window, in- it is neces- transfer much the and and For file a new transactions case of work the provides default of controlling programs, ftp was create a file back in our Writing involved is a server category. to exhibit be deleted machine to them such exitted. automatically QuickSilver current The notifying a process until The transaction for of commands transaction purposes. when transaction intends short- long-running f tp prevent daemon needs writes by this how contain Most effort Silver them that units the of the would or its editor using transferred ftp to for For into transactions. files transaction cies of DFS sible, in order shorter retrieving fall recoverable within sider programs 2: writing The trans- manipulating atomically. be made behavior. identify even programs programs to default more transac- destroyed committed. another exclusively default a sequence not when allow worthwhile. or no com- use of default for to behave must transactional sary that the is simple. see little The facilities code application applications programs with no transactional running different shell were the Taskmaster problems the same with sequence many actions ple; plexity from under was that be used the script to signal caused system. 1: Writing actions to run a shell problem to to associated from used This facilities one process too was process. the than Lesson Lesson a process that was to associate some using added for trans- we present we this we en- the destroy whole in our to with to started have to limitations section from Most transactions not this a on transactions. of transactions, action accumulated abstraction systems. they have building rely useful problems, implementation we with that has be a very countered years, servers of that sociated Unix. moved as- 248 out for this ‘(quick-and-dirty” at all likely there applications to behave are more use of transactions the system into servers, with reasonably application is a net apappli- is that and code the corresponding of applications even servers, reason to the in a distributed ery Since easier failures ing than of it than The to handle of failures. fol- found QuickSilver code has mak- no recovin the face programs win. Lesson they 3: We sumived would have without been useful nested transactions, in some to read but cases. QuickSilver transactions does [15], a transaction this in the presence whole nested abort. from make it more partial tion to succeed parallel make mand started cause the For for reason such as its remote as input after of using program steps that output from separate earlier program development. it can, for case it pmake is clearly if it does version for example, at to replicated effort least data while that has would missed atomically. of this could allowing still be coma transac- servers be needed some top- part updates fails. to bring up-to-date it recovers. But uses pmake also undo complete Nested transactions each step all successfully. cannot be used would solve of a computation of pmake would while allow for committing all this tree appli- may actions problem; other to recover from updates nested transactions top-level other atomi- would in QuickSilver be more useful where than can the concern anism tion (e.g. check). would could tion undo separate of servers fails, all for its updates would for library replicated files mode. Because a client to commit separate remote 1/0 to even transactions replicas. This directo- transaction method can interactive in described into shorter a long-running need the to be accessible transaction ends. 249 of applica- a large the fact cannot directory that be read the archive by other does the log trans- not impact log amount to us to modify than behave version ample of such a utility. of the surprises has been strength log size file utilities no provisions storage. is available of transactions system. This one, The operating and though program the that is an ex- Quicksil- required A major small even system using has in some to use multiple large atomically. subsystem. of on disk, in QuickSilver complexity large amounts off-line of space the in building the with to the a single of the Such implementation buffer a finite make uncovered log partition archiving rather has large current restricts is not may manager. on-line use of transactions should system systems or modifications the utility only transaction transactions arbitrarily as a circular artificially make the The a single collection that long to file in log. it manages fact of an update require only garbage dustrial be used class up is completed updates a new ver second but that installs One be created time, fact the transactions if one of the replica must in cases, forcing transa more supports and or encapsulated by Backing backup large distorted applica- as one provide observations: be broken not of the duration the supports that Separate if the the long space The mech- if an applica- updates. this for a the standard access to be able to access be used as an undo not a long transactions which undo are facility. in read-only needs transactional if failures useful of its transactions QuickSilver transparent part commit Nested powerful e The to generally only cannot needs that even Transactions be more undo transactions action. out applications do utility. shortcoming update LM 3 we pointed simplify for programs. While transactions: In Section ries examples locked techniques written before example until a major several are a poten- such transactions be the cannot data by the backup a problem, cally. are cases updates generally take arbitrarily There not 1. is a backup file created sub- its are remain long-running using applications canonical tions of as a nested pmake The current such files can of the following most the transaction to a effects Our Lesson update files in practice by in transactions, In this of the can to other transactions uses; an upgrade machine. performed transactions under for that because 2. In cases where This of pmake has other to apply the that since We found shorter up; is preserved. to cations, failures steps time. programs computation update transactions of difficulty, 1. Updates A con- is cleaned running running be) a pr’oblem. are not a problem, DFS when Long not source a long as so that time typical Long tial trans- 4: should to be accessible is that desirable running partial that (or on a remote from on a user’s make ion at the of parallel transact need installed not the Lesson aborting be committed output be used package starts transactions only completed is desirable to retry than finished, that be- of the computation. in progress behavior software steps is killed, were it have a comfails a separate must on files to subsequent sequence pmake uses transaction locks sense rather pmake commands write When machine it makes machine, set of commands Each release this. on a remote reboots, this each machine. soon illustrates pmake on a different pmake. action utility by machine command ● solve data of separate even if one of the replica extra a server and con- would as one transaction, However, difficult failures instead Updates mitted cleanup replicated transactions problem. in to comprehensive it can to recover for participant transaction automatic, of failures, support of a single to update transactions operating. The will the facilitates for applications tinue provide failure causes While not the not nested level Since but Using effort in an inis now underway to build collecting its on-line work log servers a new log service storage and or to off-line capable archiving storage of garbage either While to net- [9]. fixing for transactions that any Lesson not 5: Long running read-only transactions need time and above, update running a large transactions hand, are very actions lock are Because of our solve this the default read lock this wit h read applications exception files of a file between to code client all with closes to avoid that starting Using current implementation, read-only transaction not files keep example its machine fault open. of this for been utility for editor. In buffers with that ing CM is kept with in message the ask each the Each reclaim window long-running read ing fied programs remote server files. machine the server library manager, can As that ager, the short transactions user run a result, grow to crash. routines there cations used interface when and on to library Lesson ing open, tables caus- kernel eventually To avoid by the toolkit, searching this shell, etc., for the range The QuickSilver trol is similar close could the more simply The to period- requiring the In use their the server. without and session. cooperate eliminate ker- active session the files from need application concurrency for new modifi- code. control of consistency tables options control policies for different ery provides problem file QuickSilver policy allow- is desirable. best extent by its clients man- In files. tem 250 the case with not but and algorithms and to the only (e.g. short of DFS an interface kind these goal that the was would of the serof to a much of services services to for choice the choice depends transactions our leaves difficult; policy on the For recovis useful implementer is more on how algorithms of servers. that con- Different serialization kinds control also recovery. service control concurrency concurrency for a log algorithm Concurrency by a server, separate reading of recovery greater we modi- the window to create the caus- regarding one adopted are appropriate vice. and on the overflow, philosophy to the of a particular other machines and no communication would routines 6: A jlexible a wide concurrency to on several all from resources would transac- the man- continues are inactive need in turn if the If programs This would which be removed would DFS re- is only on a machine CM CM the This server have trans- remove so TM machine. the and that The If ail servers for reading CM, transactions. file could remote long-running at a ically active. required way, to manager, participating machines, transaction machine. the the as follows. of time. transactions, transaction at two a variety Besides to transaction of participants. transaction local the attempt list to be kept TM, traffic. kernel appli- manager’s transaction non-pageable For may overhead transactions periods then its read-only default consequences: window would kernel, interfering window on the background space server has two As a re- protocols detect extended from de- its could remote tables this until Nevertheless, the on the file server associated occupy file in CM additional 2. State files. for for between communication CM transactions as bitmaps server. be to enhance needed nel an or months such to avoid font between and file reading a participant This session machine a remote update remains data, would and the would tion conflicts. Hence to of our up a window solution machine to call large it runs for weeks reads after started, most unnecessary QuickSilver. possible the file provides rebooted. active from transaction. 1. The or manager fonts, server ager’s off immediately utilities file Once Secondly, transactions under manager mote even if it does manager the are crest ed. read-only adds all be modified routines. necessary to start This to code, in library of this down servers. programs inactive action only a long-running problems window remains window display is closed The is switched The cause phenomenon. transaction time. however, may file than committed timeouts, agreed, In our from to application as eight a shell. management file. The lock and from A better asso- reopens frequent as running it. a text and cation the the long an interactive view and in order closes reading to A symptom needed is for avoiding to track that to (this file releases problems almost after to the browser in memory reads, QuickSilver DFS to avoid was large case we added pieces soon serializability 3, as the because a file too strict as many be created tools decided read changes transactions example, changes difficult code additional application transactions). are embedded more in the mentioned more were the modifications Unix we correspond update files sult, a file. do not application trans- updating of the sufficient locks, since often of work to our earlier a read by such standard Section we encountered browsing up as soon close many policy in policy minimize held from giving explained on a file We found this by because other modification, concurrency As ciated to run without problem system. locks are created in Long- on the is un- the places are rare. files, solution of all, it was much a long this First is that for of problems, transactions desire applications many Read source run of files read common. other that number that a potential prevents and transactions problem, reasons. units long-running we observed two meaningful in contrast be a problem. As the immediate satisfactory provided will be used vs. long-lived ones). provide allow a file us to run sysstan- dard Unix Section tools currency control appropriate need more venient. inspect the the problem. the program written state by are the the aid! An However, the any program to be started ing from within might have it difficult the debugger transactions. several which output would DFS releases application that read a output in concept reads be serializable with a par- Furthermore, the syst ems plemented have to become ability, application that file system, for example needs sion of a soft ware machine, mits. must package keep Alternatively, whole subtree vided read an application to locks system at the root solution, interface open clients to by operating to be held after a file file problem locks related by conflicts; never blocking DFS completes to are languages instead of waiting tion be is that code would to for released. coverable sometimes even more the Lightweight commit protocol DFS as a basis that cluding until be to block use a deadlock necessary, client detector as do some requests the [16] to abort database of lock an error code transac- of our approach with Camelot provide transactions. programs invaluable its above to manage state. Through and in the system, make all ported with from We have in the Transac- in conventional little or systems found a system its namely programs written and, in- its support use of transactions. in building own level several use transactions programs to in two-phase in the system, volatile for the system through basic to management re- high-level systems the QuickSilver to programs to of implementing for the C language the re- example, The languages, cation, for for the no modifithat do latter complete not properenough to development. an error conflicts We from [13], constructs. is able are available support details at the lowest benefit transactions mechanism new transactions QuickSilver ties Servers alternative transactions systems. that offered Argus extensions for transactions IPC, another on lock pro- a trans- within allow servers use of default problem case An the for all recovery in is present. These servers programs from ways. client are completed hide language QuickSilver a programming no deadlock im- recover- [18] provides have [5] and differs lock tions requests when that and dead- by Avalon routines. it com- is the held to specific [7] been atomicity, system library a user’s control disadvantage projects or distributed we avoid a lock A have used local of transactions. operating macros onto until example, with several services. In QuickSilver, a request and example. functions is closed requests for general covery renaming to concurrency of deadlocks. system, recently, system possibility the observe accepted systems Locus similar transaction ends, or — to solve the debugging — that no read locks are to be obtained. Another clients Both failure systems. [5] provides A cleaner, for be- code, years. extended programming be to extend specify, the of the by temporarily would for locks expired return that properties a new ver- can effectively of the subtree. however, allow are a file server it reads waiting an error many provide have also been actional An snapshot for installing from all files of a file the directory general a utility a timeout database isolation an guaranteed transactions. to see a consistent while has been for [12] that and concepts mak- is closed, is not time con- servers to use to a file to update to let Work distributed More a set of files respect by letting probability of transactions database and of the would transactions, when a dead- in case of a lock until with the Related The debug- file. locks reduce when it is better conflicts. as a more Since waiting is no good for program. transaction a request completing 7 as obtaining the for a limited fore is no there be be desirable or an editor) be improved By lock trace program by the a request if there files to the block other even to abort could an interac- prevent we believe to take to be released. server by cannot be for examine to identify output without might created a particular to by the created to determine user particular to a file of the transaction actions approach of all, may Secondly, Therefore, what First input progress graph. which decide Our user making is detected. flict. reasons. for wait-for way of deciding clients two from in the lock of created and case it would utility in the necessary examine in to grep order point, written used the in this transactions tool (e.g. program at solution cycle (e.g. the for waiting transactions debugger transactions applies this be con- run allows locked access alternative to inherit ticipant For read a test remain information to allow been more interrupt during program This program cases an even have This active alternative would up an interactive since still user. a debugging lock. the program containing DFS of this tive case is the problem occurs program. in con- applications in other latter starts However, by we felt If a software address) QuickSilver default Some would of the the we described the that while policy program. killing As for applications. example memory program, ger most a new without of DFS locking An illegal choices synchronization, debugging read applications. specific policy for less restrictive files and 3, we made code, and when rejected 251 in QuickSilver which makes a language that by the making must writing handles facilities provide them recovery. needed their more On own recovery difficult the to implement than other in hand, recovery available as a toolkit, vantage of the QuickSilver semantics recovery algorithms. currency at the level space allocation servers of their DFS, may operations for example, of individual take supports bits cases ad- the All distributed experience system uses transactions with building several years Although there are a few communication e All updates run under is done one or more to persistent atomically with on behalf of database systems atomicity of daters, and experience data transactions. in the respect properties well; help in updates, isolation of file useful aid system the presence gramming even these variants actions to be- the that (2) the large amount system makes pmake) cations not able (e.g. Unix cause of default tools the proBe- lightweight allow trans- the system run advantage Applications that termination imal additional transactions notification) cleanup only the and use of atomically servers can be by the for recovery performance purposes operating no presence of local systems or only of participants, additional a small Be- the for functions, example, Where in particular by the file system, overhead. min- transac- IPC. In and people pose that clients they a (1) to use need, transactions the powerful that and write experience for operating power with shows the penalty syssolving system has a reason- a complete both mech- operating by This performance transaction means introduced they these 252 have following people the project Mike McNabb, Theimer. appli- is offset only suffer 5% to the cost provide effort in other to allow QuickSilver distribution. practical We Dan code. transaction about and behave transactions due do not system implementation of transactions to Acknowledgements Cabrera, difficult; QuickSilver. transactional additional means cost Tracking only automatic use prob- particular, provided control that in the problems project. on data existing is not system programs is not operating maintain porting under file client by different (e.g. tions. the must shown on transactions Many applications environment Writing but of simpler provided Also, such QuickSilver. complex, distributed unchanged transactions, in the cost; 9 and applications that transactional In of log data. and complexity provide notification support to write check). no inherent itself. system, supports positive. implemen- be small. a concern. protocol transactional a transactional our policies a particularly of the based and simplifies throughout applications in which transactions control we have provides many data also for distributed it easier and to many impose commit transaction transactional mostly of concurrency as implemented extensibility as data distributed that successfully writing fact, consistency adds system to shared are upOur all of these uses of transactions, two-phase that In more that tem management. We found under multiple Transactions failures using we found purpose log service amounts anism provide updates. of persistent, mechanism difficult. (e.g. when be used as a unifying resource access to applications traditional of the between to a general-purpose of failures. mechanism yond in consistency an undo used has shown synchronizing maintain are committed QuickSilver are they same to failures. transactions permanence with on the been model long-running concurrency just and areas transaction that In summary, In the to be compara- running has to be improved, the in a general flexible programs have needs with problem transactions. o All applications we found system system over we found interprocess robust Overall, QuickSilver programs lems pervasively: ● of the more cost. hardware. tation QuickSilver of simpler, performance ble to a non-transactional in its recoverable component. Conclusions The the performance con- Our 8 benefits outweigh to optimize will contributed not have for attempt to at one time at least QuickSilver Roger Jon Wayne list, or another several Goodfellow, Reinke, the a complete years: Haskin, Sawdon, but the all worked Luis-Felipe Yoni and Malachi, Marvin Robert N. Sidebotham, and performance [1] M. M Astrahan, lain, K. W. P. F. and G. V. Watson. log-based D. P. P. R. R: Jim B. W. [12] Wade, and on Peter comparison of [13] two Cabrera distributed file izontal Jim In prepa- In [14] for of the workstations, Santa David for Clara, distributed The V kernel: systems. IEEE a software Software, base 1(2):19- L. Eppinger, Spector, Lilly Mummert, Camelot editors. tributed Transaction and Facility. and Alfred Avalon: Morgan A Z. Dis- Gray, R. A. Lorie, Traiger. Granularity sistency in a shared editor, Modelling tems, Liskov pages Company, G. R. of locks in and data base. Data Base 365–394. Putzolu, degrees In North and G. I. L. Gray, Lindsay, Paul Nijssen, Management Holland J.N. In editors, pages [9] [18] Sys- Dean and John Menees, An Yoni Chan. ACM Howard, David Course, Wayne The Wayne 1991. Sawdon, management on Sawdon, Quicksil- Computer in and Quick- Systems, 1988. Michael A. systems. Seegmueller, Advanced Reinke. Malachi, Transactions February G. In preparation, Recovery of Computing 1979. Daniels, Jon log service. Haskin, H. A distributed on et. Mohan, database Computer Sys- 1984. al. Argus reference man- MIT/LCS/TR-400, B. Lindsay. B. Moss. Efficient of process MIT, of August commit model pro- of distributed of the Second Principles Elliot ACM Distributed Sym- Computing, 1983. Nichols, L. M. Nested distributed Press, transactions: computing. An approach Technical report, 1985. R. Obermarck. Distributed gorithm. Transactions ACM June Michael D. deadlock detection on Database al- Systems, 1982. Kazar, Schroeder formance of Firefly Computer Systems, Matthew J. K. and Michael Burrows. ACM Transactions RPC. 8(1):1-17, Sherri G. Sat yanarayanan, 253 Weinstein, Livezey, and system. 115-126, Put- manager operating and Systems: Bruce Franco ACM Springer-Verlag, Haskin, 6(1):82-108, C. Computation in R*: tree 76-88, actions 1981. Graham, Operating recovery Price, recovery on database R.M. 393-481. Gregory [11] Notes McNabb, Silver. Tom The June Daniel Roger Haas, Transactions Proceedings on Brian Publishing Blasgen, manager. Roger ver [10] Lorie, 13(2):223-242, Bayer, Mike Traiger. R database Gray. R. McJones, Irving the System [8] the pages ating Raymond Surveys, M. A. Yost. February Peron 1990. of con- M. 1976. ZOIU, and Laura Robert Report and for Symposium [7] Jim 6(1):51–81, 1987. 7(2):187-208, [17] J. N. ACM Kauffmann, 1991. [6] Scale system. Systems, February Technical C. Mohan MIT 1984. Jeffrey Barbara to reliable [16] [5] J. West. file 1988. R. Cheriton. 42, April 2(1):24–38, posium [15] [4] ACM transactions. IEEE and communication tocols hor- 2nd Computer Lindsay, November QuickSilver architecture Proceedings on computer March Wyllie. an services: growth. conference and G. ual. 1991. Luis-Felipe on F. Wilms, tems, Michael 1988. manager. 1976. of atomicity. Bruce Paul approach McPherson, A implementations J. W. Transactions June John Wyllie. February Griffiths, Relational 1(2):97-137, Transactions Chamber- P. McJones, ACM Cabrera, and D. Gray, I. L. Traiger, System Systems, Luis-Felipe CA, N. management. Schwarz, [3] Lorie, A. Putzolu, database ration, Blasgen, R. R. Database [2] W. J. King, Mehl, to M. Eswaran, and in a distributed and Thomas Gerald synchronization In 1985. Page, Popek. in a distributed Proceedings on Operating December W. J. System of the Tenth Principles, Jr., TransoperACM pages