Just to flesh these points out a little for the record:

> One idea we could do is partition our datatypes.  We could turn off and leave 
> behind an old collection type (say tabs) and only sync a new replacement 
> collection type (tabs2 or newtabs).

This is actually pretty much what bumping a collection version does.

A client sees history = 1, writes history = 2, clears the collection, uploads 
everything again.

Clients that don’t support history = 2 refuse to sync history until they 
upgrade.

The flaws with this are:

* Someone syncing Nightly against Release, or ESR with whatever, or who are 
otherwise stranded on an earlier Firefox version, can get in a state of sync 
not working without knowing why.

* Downgrades are a seriously big deal — clients aren’t smart enough to figure 
out if they can downgrade, so you can try out Nightly and silently end up in a 
state of *no* devices being able to sync! And Sync 1.5 doesn’t have Reset Sync, 
so this is totally non-recoverable.

* A version upgrade requires uploading all data again, and then downloading it 
and reconciling it again on every other device. For some collections 
(bookmarks, history) that’s either impractical or likely to tickle bugs.

* On a server move or other wipe event, an old client can upload old data, and 
the whole dance has to be done again.

* Race conditions ho!


Those flaws are big enough that we never really used this method, and still 
don’t plan to.


> Another idea is to also ask the server to play a role in data type 
> negotiation.  Perhaps instead of the constellation of clients determining 
> what datatypes are synced, we have the FxA server intermediate this step.  
> (This might be part of what ckarlof suggested for the "lightest possible 
> configuration record”.)

Or lightweight client version negotiation: Bug 825731.

This requires buy-in from all of the clients in your accounts, though, so 
that’s a breaking change.
_______________________________________________
Sync-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/sync-dev

Reply via email to