diff options
author | drebs <drebs@leap.se> | 2017-06-06 15:12:56 -0300 |
---|---|---|
committer | Kali Kaneko <kali@leap.se> | 2017-06-06 20:35:46 +0200 |
commit | 9dd3ebe6bad0bfe05840782c805e961cf4a96c6a (patch) | |
tree | 0f8d4b3e907cbdb88a5fcdf0d954cdc600a1fd17 /docs/sync.rst | |
parent | ddef89b093929387614c52896ae4e10b3714be65 (diff) |
[doc] move sphinx up to root of docs dir
Diffstat (limited to 'docs/sync.rst')
-rw-r--r-- | docs/sync.rst | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/docs/sync.rst b/docs/sync.rst new file mode 100644 index 00000000..b9d4c858 --- /dev/null +++ b/docs/sync.rst @@ -0,0 +1,35 @@ +Soledad sync process +==================== + +TODO: this documentation needs to be updated to account for new streaming encryption method. + +Phases of sync: + +1. client acquires knowledge about server state. +2. client sends its documents to the server. +3. client downloads documents from the server. +4. client records its new state on the server. + +Originally in u1db: + +* **1** is a GET, +* **2** and **3** are one POST (send in body, receive in response), +* **4** is a PUT. + +In soledad: + +* **1** is a GET. +* **2** is either 1 or a series of sequential POSTS. + * **2.1** encrypt asynchronously + * **2.2** store in temp sync db + * **2.3** upload sequentially +* **3** is a series of concurrent POSTS, insert sequentially on local client db. + * **3.1** download concurrently + * **3.2** store in temp sync db + * **3.3** decrypt asynchronously + * **3.4** insert sequentially in local client db +* **4** is a PUT. + +This difference between u1db and soledad was made in order to be able to gracefully interrupt the sync in the middle of the upload or the download. + +it is essential that all the uploads and downloads are sequential: documents must be added in order. the download happens in parallel, but then locally they are added sequentially to the local db. |