On 28 May 2018 at 12:42, Mark Hammond <[email protected]> wrote:
> On 28/05/2018 11:38 am, Ryan Kelly wrote:
>
>> However, once this first device has re-uploaded and restored a
>> sensible-looking timestamp to the "tabs" collection, what will be the
>> behaviour of other devices? It seems like this might prevent them from
>> discovering that their own tab data has disappeared, and they'll only
>> recover after user navigation triggers them to upload a new modified tab
>> record.
>>
>
> Tabs are a little special - each client has exactly 1 record. Desktop
> further treats tabs as special by always uploading all tabs in the first
> sync for the session.
>
> But yeah, in general you are correct - other desktop devices already
> running may not recover until the browser is restarted.
>
> Thom has an interesting suggestion in the meeting last week, that we could
>> force clients into doing a full re-sync of a collection by modifing the
>> "syncid" for that collection in their meta/global record. Would this be a
>> more reliable (albeit more hacky!) way to guide the clients into correct
>> behaviour here?
>>
>
> Yes, that should force clients to re-upload all of their tabs on the very
> next sync. Note also that simply removing tabs from meta/global should have
> the same result (the fist client to Sync should generate a new syncID)
Is this true of other collections in general? In particular, I'm wondering
about the possibilities of recovering the user's data atop a point-in-time
backup using this method, along the following lines:
* We take regular backup snapshots of the user's data on the server
* Something bad happens to a storage node, and we want to restore the
user's data from a backup, so we:
* Down the node, having it return 503s with backoff
* Restore the db from backup
* Futz with their meta/global to remove the syncIDs while leaving other
data intact
* Restore the node to service
* On its next sync, the client detects that the syncIDs have changed and
does a full re-sync
* Despite potential data loss on the server side, we don't lose any updates
from the client!
Ryan
_______________________________________________
Sync-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/sync-dev