Added Guarantees section
authorAli Younis <ayounis@uci.edu>
Mon, 3 Oct 2016 19:12:46 +0000 (12:12 -0700)
committerAli Younis <ayounis@uci.edu>
Mon, 3 Oct 2016 19:12:46 +0000 (12:12 -0700)
version2/doc/iotcloud.tex

index 8c11982..3acd7aa 100644 (file)
@@ -203,7 +203,7 @@ When deciding which records to delete the following is to be done:
 \end{enumerate}\r
 \r
 Note this makes that size of the data structure be bounded.\r
-If there are $n$ devices and the data structure has a minimum size of $m$.  Then the max size of the data structure is given by $m + n$ for the case when all the devices make an update at the same time.   \r
+If there are $n$ devices and the data structure has a minimum size of $m$.  Then the max size of the data structure is given by $m + n -1$ for the case when all the devices make an update at the same time.   \r
 \r
 \subsection{\textbf{Rescuing Transactions, Commits, Aborts, Ext}}\r
 Data should be proactively rescued from the "oldest" records currently in the data structure.  Unused space in new records should be used to rescue data from old records so that when it comes time to delete the old records, there are no live pieces of data that need to be rescued.  When a piece of data is rescued, it is rescued with its vector clock as well (so that the time of that data can be saved).\r
@@ -226,7 +226,7 @@ Checking the data structure for consistency is done as follows:
     \item Verify that no currently live data Structure re-size notification is smaller than the last known data structure size.  Data structure can only grow in size.\r
     \item Verify that all the server sequence numbers for the records that are currently present have unique numbers that have a difference of 1 (no gaps).\r
     \item Verify record server sequence numbers against the stated server sequence numbers in the server sequence number notification payloads (make sure the server is not changing the sequence number on the fly).\r
-    \item \r
+    \item Verify that no to records have the same server sequence number\r
 \end{enumerate}\r
 \r
 \r
@@ -272,6 +272,23 @@ Live Status of entries:
     \r
 \end{enumerate}\r
 \r
+\r
+\section{\textbf{System Guarantees}}\r
+\begin{itemize}\r
+    \item Server cannot view data inside records\r
+    \item Server cannot forge or modify or create any records\r
+    \item Server cannot withhold any records\r
+    \item Server cannot reorder records that could not have been ordered differently due to network latency\r
+    \item Server cannot delete records unless told to do so.\r
+    \item There will always be an obvious key-value pair that is the latest key value pair.\r
+    \item The data structure is bounded in size such that $m$ is the minimum size of the data structure,  $n$ is the number of devices in the system and $s$ is the current size of the data structure: $m \leq s \leq (m+n-1)$\r
+    \item Data structure can only grow when there are too may key-value pairs (and aborts) than what fit in the current data structure size within reason.\r
+    \item No currently valid data can be lost by the system and go undetected.\r
+    \item Devices can operate offline and re-sync with the system and get a consistent view of the system\r
+    \item If the server tries to hold a device on an older version of the data structure, that device can eventually rejoin the main data structure without problems.\r
+    \item Devices that have a transaction aborted will be able to be notified about the abort indefinately (no time frame when notification must be accepted).\r
+\r
+\end{itemize}\r
     \r
 \r
 \end{document}
\ No newline at end of file