Confirmed users
471
edits
No edit summary |
No edit summary |
||
Line 6: | Line 6: | ||
passwords, etc) between multiple devices, with end-to-end encryption. | passwords, etc) between multiple devices, with end-to-end encryption. | ||
= Problem Statement = | |||
The goal of PICL is to provide a unified browser experience across multiple | The goal of PICL is to provide a unified browser experience across multiple | ||
Line 52: | Line 52: | ||
* Gentle on the server: users with large datasets should not cause database timeouts. Pagination might help, or breaking the dataset into smaller pieces. | * Gentle on the server: users with large datasets should not cause database timeouts. Pagination might help, or breaking the dataset into smaller pieces. | ||
= Merge Strategies and Locations = | |||
We can take a lot of inspiration from Git. In the Git "central canonical | We can take a lot of inspiration from Git. In the Git "central canonical | ||
Line 90: | Line 90: | ||
= Overall Architecture = | |||
We assume that each datatype has a canonical "native store", where the | We assume that each datatype has a canonical "native store", where the | ||
Line 121: | Line 121: | ||
[[File:DeltaSync-versions.png|Versions]] | [[File:DeltaSync-versions.png|Versions]] | ||
= Server Holds Current Version, and Sometimes Deltas = | |||
For each collection, the server holds the signed version-ID for the current | For each collection, the server holds the signed version-ID for the current | ||
Line 148: | Line 148: | ||
[[File:DeltaSync-deltas.png|Deltas]] | [[File:DeltaSync-deltas.png|Deltas]] | ||
= Client Merging = | |||
The sync client cannot remain connected to the server at all times, nor can | The sync client cannot remain connected to the server at all times, nor can |