|
| 1 | +\relax |
| 2 | +\providecommand\hyper@newdestlabel[2]{} |
| 3 | +\providecommand\HyField@AuxAddToFields[1]{} |
| 4 | +\providecommand\HyField@AuxAddToCoFields[2]{} |
| 5 | +\citation{Ellis1989} |
| 6 | +\citation{Nichols1995} |
| 7 | +\citation{DayRichter2010} |
| 8 | +\citation{Li2006,Roh2011RGA,Sun2020OT} |
| 9 | +\@LN@col{1} |
| 10 | +\@writefile{toc}{\contentsline {section}{Abstract}{1}{section*.1}\protected@file@percent } |
| 11 | +\@LN@col{2} |
| 12 | +\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Two concurrent insertions into a text document.}}{1}{figure.caption.5}\protected@file@percent } |
| 13 | +\providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}} |
| 14 | +\newlabel{two-inserts}{{1}{1}{Two concurrent insertions into a text document}{figure.caption.5}{}} |
| 15 | +\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}{section.1}\protected@file@percent } |
| 16 | +\newlabel{introduction}{{1}{1}{Introduction}{section.1}{}} |
| 17 | +\citation{Upwelling,Patchwork} |
| 18 | +\citation{Oster2006WOOT} |
| 19 | +\citation{crdt-papers} |
| 20 | +\citation{DayRichter2010} |
| 21 | +\citation{overleaf-ot} |
| 22 | +\citation{ditto-aircraft} |
| 23 | +\citation{ditto-military} |
| 24 | +\citation{antarctica} |
| 25 | +\citation{Hellerstein2010} |
| 26 | +\@LN@col{1} |
| 27 | +\@LN@col{2} |
| 28 | +\@writefile{toc}{\contentsline {section}{\numberline {2}Background}{2}{section.2}\protected@file@percent } |
| 29 | +\citation{Shapiro2011} |
| 30 | +\citation{Lamport1978} |
| 31 | +\citation{Birman1991,Cachin2011} |
| 32 | +\@LN@col{1} |
| 33 | +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}System model}{3}{subsection.2.1}\protected@file@percent } |
| 34 | +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Event graphs}{3}{subsection.2.2}\protected@file@percent } |
| 35 | +\newlabel{event-graphs}{{2.2}{3}{Event graphs}{subsection.2.2}{}} |
| 36 | +\@LN@col{2} |
| 37 | +\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces The event graph corresponding to \autoref {two-inserts}.}}{3}{figure.caption.6}\protected@file@percent } |
| 38 | +\newlabel{graph-example}{{2}{3}{The event graph corresponding to \autoref {two-inserts}}{figure.caption.6}{}} |
| 39 | +\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Document versions}{3}{subsection.2.3}\protected@file@percent } |
| 40 | +\newlabel{versions}{{2.3}{3}{Document versions}{subsection.2.3}{}} |
| 41 | +\citation{polog} |
| 42 | +\@LN@col{1} |
| 43 | +\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Replaying editing history}{4}{subsection.2.4}\protected@file@percent } |
| 44 | +\newlabel{replay}{{2.4}{4}{Replaying editing history}{subsection.2.4}{}} |
| 45 | +\@LN@col{2} |
| 46 | +\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces An event graph (left) and one possible topologically sorted order of that graph (right).}}{4}{figure.caption.7}\protected@file@percent } |
| 47 | +\newlabel{topological-sort}{{3}{4}{An event graph (left) and one possible topologically sorted order of that graph (right)}{figure.caption.7}{}} |
| 48 | +\@writefile{toc}{\contentsline {subsection}{\numberline {2.5}Implementing OT using a CRDT}{4}{subsection.2.5}\protected@file@percent } |
| 49 | +\newlabel{crdt-replay}{{2.5}{4}{Implementing OT using a CRDT}{subsection.2.5}{}} |
| 50 | +\citation{Boehm1995} |
| 51 | +\citation{vscode-buffer} |
| 52 | +\citation{Attiya2016} |
| 53 | +\citation{fugue} |
| 54 | +\@LN@col{1} |
| 55 | +\@writefile{toc}{\contentsline {section}{\numberline {3}The Event Graph Walker algorithm}{5}{section.3}\protected@file@percent } |
| 56 | +\newlabel{algorithm}{{3}{5}{The Event Graph Walker algorithm}{section.3}{}} |
| 57 | +\@LN@col{2} |
| 58 | +\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Characteristics of Eg-walker\xspace }{5}{subsection.3.1}\protected@file@percent } |
| 59 | +\newlabel{characteristics}{{3.1}{5}{Characteristics of \algname }{subsection.3.1}{}} |
| 60 | +\citation{CLRS2009} |
| 61 | +\@LN@col{1} |
| 62 | +\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Walking the event graph}{6}{subsection.3.2}\protected@file@percent } |
| 63 | +\newlabel{graph-walk}{{3.2}{6}{Walking the event graph}{subsection.3.2}{}} |
| 64 | +\@LN@col{2} |
| 65 | +\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces An event graph. Starting with document ``hi'', one user changes ``hi'' to ``hey'', while concurrently another user capitalises the ``H''. After merging to the state ``Hey'', one of them appends an exclamation mark to produce ``Hey!''.}}{6}{figure.caption.8}\protected@file@percent } |
| 66 | +\newlabel{graph-hi-hey}{{4}{6}{An event graph. Starting with document ``hi'', one user changes ``hi'' to ``hey'', while concurrently another user capitalises the ``H''. After merging to the state ``Hey'', one of them appends an exclamation mark to produce ``Hey!''}{figure.caption.8}{}} |
| 67 | +\citation{Roh2011RGA} |
| 68 | +\citation{Nicolaescu2016YATA} |
| 69 | +\citation{yjs} |
| 70 | +\@LN@col{1} |
| 71 | +\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Representing prepare and effect versions}{7}{subsection.3.3}\protected@file@percent } |
| 72 | +\newlabel{prepare-effect-versions}{{3.3}{7}{Representing prepare and effect versions}{subsection.3.3}{}} |
| 73 | +\@LN@col{2} |
| 74 | +\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces State machine for internal state variable $s_p$.}}{7}{figure.caption.9}\protected@file@percent } |
| 75 | +\newlabel{spv-state}{{5}{7}{State machine for internal state variable $s_p$}{figure.caption.9}{}} |
| 76 | +\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Left: the internal state after applying $e_1 ... e_4$ from \autoref {graph-hi-hey}. Right: after $\mathsf {retreat}(e_4)$ and $\mathsf {retreat}(e_3)$, the prepare state is updated to mark ``H'' as \texttt {NotInsertedYet}, and the deletion of ``h'' is undone. The effect state is unchanged.}}{7}{figure.caption.10}\protected@file@percent } |
| 77 | +\newlabel{crdt-state-1}{{6}{7}{Left: the internal state after applying $e_1 ... e_4$ from \autoref {graph-hi-hey}. Right: after $\mathsf {retreat}(e_4)$ and $\mathsf {retreat}(e_3)$, the prepare state is updated to mark ``H'' as \texttt {NotInsertedYet}, and the deletion of ``h'' is undone. The effect state is unchanged}{figure.caption.10}{}} |
| 78 | +\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces The internal Eg-walker\xspace state after replaying all of the events in \autoref {graph-hi-hey}.}}{7}{figure.caption.11}\protected@file@percent } |
| 79 | +\newlabel{crdt-state-2}{{7}{7}{The internal \algname state after replaying all of the events in \autoref {graph-hi-hey}}{figure.caption.11}{}} |
| 80 | +\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}Mapping indexes to character IDs}{7}{subsection.3.4}\protected@file@percent } |
| 81 | +\newlabel{b-trees}{{3.4}{7}{Mapping indexes to character IDs}{subsection.3.4}{}} |
| 82 | +\citation{CLRS2009} |
| 83 | +\@LN@col{1} |
| 84 | +\@LN@col{2} |
| 85 | +\@writefile{toc}{\contentsline {subsection}{\numberline {3.5}Clearing the internal state}{8}{subsection.3.5}\protected@file@percent } |
| 86 | +\newlabel{clearing}{{3.5}{8}{Clearing the internal state}{subsection.3.5}{}} |
| 87 | +\citation{automerge-storage,automerge-columnar} |
| 88 | +\citation{Abadi2013,Stonebraker2005} |
| 89 | +\citation{yjs} |
| 90 | +\@LN@col{1} |
| 91 | +\@writefile{toc}{\contentsline {subsection}{\numberline {3.6}Partial event graph replay}{9}{subsection.3.6}\protected@file@percent } |
| 92 | +\newlabel{partial-replay}{{3.6}{9}{Partial event graph replay}{subsection.3.6}{}} |
| 93 | +\@LN@col{2} |
| 94 | +\@writefile{toc}{\contentsline {subsection}{\numberline {3.7}Algorithm complexity}{9}{subsection.3.7}\protected@file@percent } |
| 95 | +\newlabel{complexity}{{3.7}{9}{Algorithm complexity}{subsection.3.7}{}} |
| 96 | +\@writefile{toc}{\contentsline {subsection}{\numberline {3.8}Storing the event graph}{9}{subsection.3.8}\protected@file@percent } |
| 97 | +\newlabel{storage}{{3.8}{9}{Storing the event graph}{subsection.3.8}{}} |
0 commit comments