\BOOKMARK [1][-]{section.1}{Introduction}{}% 1 \BOOKMARK [1][-]{section.2}{Device Approach}{}% 2 \BOOKMARK [2][-]{subsection.2.1}{Records}{section.2}% 3 \BOOKMARK [3][-]{subsubsection.2.1.1}{Types of Payloads}{subsection.2.1}% 4 \BOOKMARK [2][-]{subsection.2.2}{Pulling the data structure}{section.2}% 5 \BOOKMARK [2][-]{subsection.2.3}{Updates}{section.2}% 6 \BOOKMARK [2][-]{subsection.2.4}{Deletions}{section.2}% 7 \BOOKMARK [2][-]{subsection.2.5}{Reading a key-value pair}{section.2}% 8 \BOOKMARK [2][-]{subsection.2.6}{Rescuing Transactions, Commits, Aborts, Ext}{section.2}% 9 \BOOKMARK [2][-]{subsection.2.7}{Checking the Data Structure}{section.2}% 10 \BOOKMARK [2][-]{subsection.2.8}{The Arbitrator}{section.2}% 11 \BOOKMARK [3][-]{subsubsection.2.8.1}{Commits}{subsection.2.8}% 12 \BOOKMARK [3][-]{subsubsection.2.8.2}{Aborts}{subsection.2.8}% 13 \BOOKMARK [2][-]{subsection.2.9}{Setting Up New Keys \(Choosing the Arbitrator\)}{section.2}% 14 \BOOKMARK [2][-]{subsection.2.10}{Live Status}{section.2}% 15 \BOOKMARK [1][-]{section.3}{Server Approach}{}% 16 \BOOKMARK [2][-]{subsection.3.1}{Pull all current slots}{section.3}% 17 \BOOKMARK [2][-]{subsection.3.2}{Put a new record in a slot}{section.3}% 18 \BOOKMARK [2][-]{subsection.3.3}{Delete a slot}{section.3}% 19 \BOOKMARK [1][-]{section.4}{Data Structure Abstraction}{}% 20 \BOOKMARK [2][-]{subsection.4.1}{Put Operation}{section.4}% 21 \BOOKMARK [2][-]{subsection.4.2}{Get Operation}{section.4}% 22 \BOOKMARK [2][-]{subsection.4.3}{Check put status}{section.4}% 23 \BOOKMARK [2][-]{subsection.4.4}{Create New Key Operation}{section.4}% 24 \BOOKMARK [1][-]{section.5}{System Guarantees}{}% 25 \BOOKMARK [1][-]{section.6}{System Correctness}{}% 26