80
newsequenceE’, intheobviousway.Aninsertion(m, I
1 …I
n )givesthenewsequence
D
1 …D
m-1 I
1 …I
n D
m …D
n .Adeletion(s, e)givesthenewsequenceD
1 …D
s–1 D
e+1 …D
n .Theresultof
ahistoryO
1 …O
k ,istheresultofsuccessivelyapplyingeachoperationtotheresultofthe
previousapplicationstoproduceafinalresult.
Morecomplexhistoriescanbedefinedascompositionsoftheselinearhistories.Forin-
stance,twohistoriesH
1 andH
2 representversionsonseparatebranchesofaversiontree,if
theyshareacommoninitialsetofoperationsO
1 …O
k .ThestatedefineduptoO
k represents
thehistoryofthecommonancestorofH
1 andH
2 .Othervariationsincludereversedeltas,as
usedintheRCSsystem.Inthisapproachafinalversionisalwaysavailable,andinverseop-
erationsareusedtorepresenthistories.Reversedeltasinterchangethemeaningofinsert
anddeleteoperations(sincethestatebeforeandinsertioncanbefoundbydeletingthein-
serteddata,andthestatebeforeadeletioncanbefoundbyinsertingthedatathatwasde-
leted).Otherwise,reversedeltashaveexactlythesameproperties.
Thisrepresentationisthebasicstartingpointforoperationaltransformationapproaches
aswellassoftwareversioncontrolsystems.Ithasrealdrawbacksforrepresenting(andim-
plementing)themergeoperation,andnotonlybecauseitdoesnothandledynamicopera-
tions.Theoffsetsineachinsertionanddeletioninasequenceofoperationsdependonthe
precedingchangesinthehistory,sincetheoffsetsofeachcharacterdependontheexact
seriesofchangesappliedsofar.Thismeansthatanymergeprocessmustorderalloperations
intoaserialhistory,andthenadjusttheoffsetsofthesechangesdependingonthefinal
serializationchosen.Adjustingtheseoffsetsinthepresenceofmultiplechangesourcescan
beadifficulttask.EllisandGibbs’originalalgorithmfordoingthis(EllisandGibbs1989)in
adistributedsettinghas,indeed,proveddifficulttogetcompletelycorrect(Ressel,Nitsche-
Ruhlandetal.1996;Suleiman,Cartetal.1997;Sun,Jiaetal.1997).
Manyofthedifficultieswithoperationaltransformationstemfromtheneedtosimulta-
neouslysolveseveralhardproblems;operationsmustberesolvedinawaythatpreserves
81
userintentions,operationsmustbecorrectlytransformed,andpartiestothecollaboration
musttrackeachother’sstatesufficientlytodeterminewhattransformationtoapply.Palimp-
sestprovides,forindividualchanges,aninvariantrepresentationthatseparatessynchroni-
zationfromintentionpreservation.Thebestdescriptionofthestateoftheartinoperational
transformationisfoundin(SunandEllis1998;Sun,Jiaetal.1998).
Palimpsesteliminatesthenotionthattheoperationsinahistorymustbetotallyordered,
insteadrelyingonlyonapartialorderthatreflectsdatadependenciesinthechanges.This
alsomeans,aswehaveseen,thattheaddressingmechanismdoesnotrelyonoffsetsorany
otherinformationrelatedtoaspecificstate.Thishasasignificanteffectonimplementa-
tions,sinceitisnolongernecessarytohaveevenpartialknowledgeofthedistributedstate
ofothercollaboratingparties.
4.2 BasicDefinitions
ThefundamentalobjectsofthePalimpsestformalismarechanges,changesets,andse-
quencestates.Achangerepresentsauser’seditingoperationonasequence,andincludes
enoughinformationtoindicatetheeditingintentionofthatchange.Achangesetisasetof
changes,whoseactionsaretobecomposed.Fromachangeset,itispossibletoextracta
sequencestate,theparticularstatedefinedbyproperlyexecutingtheoperationsinthat
changeset.AsystembasedonthePalimpsestmodelwillmaintainanumberofchangesets.
Oneisthe“universalchangeset,”containingallchangesofwhoseexecutionthesystemhas
evenbeeninformed,otherswillcorrespondtoparticularstates(versions)thattheapplica-
tionisinterestedin.
Useroperationsthataffectthehistoryofasequencecorrespondtothemaintenanceof
differentchangesetsrepresentingdifferentstatesthatareofinterest.Anautomaticmerge
oftwostatescanbeaccomplishedsimplybytakingtheunionofthetwochangesetsrepre-
sentingthosestates.Auserrequesttoundoachangeisaccomplishedbyremovingthatpar-
Previous Page Next Page