15
T T T Ta a a ab b b b lll le e e e 1111....1111:::: TTTTyyyyppppeeeessss ooooffff ccccoooonnnnccccuuuurrrrrrrreeeennnnccccyyyy ccccoooonnnnttttrrrroooollll,,,, wwwwiiiitttthhhh eeeexxxxeeeemmmmppppllllaaaarrrryyyy ssssyyyysssstttteeeemmmmssss....
Table1.1showspossibleanswerstothisquestionastheresultofinteractionalongtwo
distinctaxes,creatingasimpletaxonomyofapplicationconcurrencymodels.Oneaxisishis-
torystructure,therelationshipsbetweenapplicationoperations’resultantstates,andthe
otheristhetypesofdivergencesupportablewithinagiventypeofhistorystructure.Each
cellofthetablecontainsthenameofapreviouslydescribedsystemthatexemplifiesthat
kindofmodel.Theycanbemorefullydescribedasfollows:
• Singlestates.Thiskindofsystemalwayshasawellknown“current”stateforanyshared
object,andthatsinglestateisalwaysaccessible.Inaconvergentsinglestatesystemthe
stateisalwaysfullyconsistentfromtheapplicationperspective,inadivergentsingle
statesystem,someinconsistenciesarepermittedintheapplicationstate.Mostoperating
systemsprovidetheconvergentversionofthisasthebasicfilesystemabstraction.HTTP
1.1,whenusedwiththePUTmethod,andwithoutanyextensions,implementsthedi-
vergentversionofthis,sincethelackoflockingallowschangestobeinadvertently
overwritten.Prosperoalsoimplementsdivergentsingle-stateediting,butguarantees
eventualconvergencewithsomeattempttopreserveeditingintentions.
• Multiplesequentialstates.Thiskindofsystempresentsalinearhistoryofsignificant
states,orderedtemporally.Inconvergentsystems,thishistoryalwayscorrespondstoa
serialexecutionhistory.Augment(Engelbart,Watsonetal.1973;Engelbart1984)useda
modellikethis.Inadivergentsystem,theserialorderassumptionwouldnotbetrue,
andsomechangesmightbelostinsubsequentupdates.
• Multiplebranchingstates.Thismodelistheonethathasbeenadoptedasthebasisfor
mostsoftwareengineeringsystems(Rochkind1975;Tichy1985).Manystatescorre-
spondingtodifferentpossibleexecutionhistoriesexistinparallel.Whileapessimistic
variantofsuchasystemispossible,itmakeslittlesense,asanyconflictcanberesolved,
serialorderingpreserved,andnochangeslost:simplybycreatinganewbranchwhen-
T T T Ta a a ab b b b lll le e e e 1111....1111:::: TTTTyyyyppppeeeessss ooooffff ccccoooonnnnccccuuuurrrrrrrreeeennnnccccyyyy ccccoooonnnnttttrrrroooollll,,,, wwwwiiiitttthhhh eeeexxxxeeeemmmmppppllllaaaarrrryyyy ssssyyyysssstttteeeemmmmssss....
Table1.1showspossibleanswerstothisquestionastheresultofinteractionalongtwo
distinctaxes,creatingasimpletaxonomyofapplicationconcurrencymodels.Oneaxisishis-
torystructure,therelationshipsbetweenapplicationoperations’resultantstates,andthe
otheristhetypesofdivergencesupportablewithinagiventypeofhistorystructure.Each
cellofthetablecontainsthenameofapreviouslydescribedsystemthatexemplifiesthat
kindofmodel.Theycanbemorefullydescribedasfollows:
• Singlestates.Thiskindofsystemalwayshasawellknown“current”stateforanyshared
object,andthatsinglestateisalwaysaccessible.Inaconvergentsinglestatesystemthe
stateisalwaysfullyconsistentfromtheapplicationperspective,inadivergentsingle
statesystem,someinconsistenciesarepermittedintheapplicationstate.Mostoperating
systemsprovidetheconvergentversionofthisasthebasicfilesystemabstraction.HTTP
1.1,whenusedwiththePUTmethod,andwithoutanyextensions,implementsthedi-
vergentversionofthis,sincethelackoflockingallowschangestobeinadvertently
overwritten.Prosperoalsoimplementsdivergentsingle-stateediting,butguarantees
eventualconvergencewithsomeattempttopreserveeditingintentions.
• Multiplesequentialstates.Thiskindofsystempresentsalinearhistoryofsignificant
states,orderedtemporally.Inconvergentsystems,thishistoryalwayscorrespondstoa
serialexecutionhistory.Augment(Engelbart,Watsonetal.1973;Engelbart1984)useda
modellikethis.Inadivergentsystem,theserialorderassumptionwouldnotbetrue,
andsomechangesmightbelostinsubsequentupdates.
• Multiplebranchingstates.Thismodelistheonethathasbeenadoptedasthebasisfor
mostsoftwareengineeringsystems(Rochkind1975;Tichy1985).Manystatescorre-
spondingtodifferentpossibleexecutionhistoriesexistinparallel.Whileapessimistic
variantofsuchasystemispossible,itmakeslittlesense,asanyconflictcanberesolved,
serialorderingpreserved,andnochangeslost:simplybycreatinganewbranchwhen-