On 2014-10-13, 8:28 AM, Richard Newman wrote:
Hello folks,

As most of you know, we didn’t have time to rev the Sync storage format when we 
shipped 1.5.

There are a swath of improvements that we wish we had[1], were planning for 
Sync 2.0, but never got to ship.

The lack of some of this information — more info about clients (platform?), 
about history (visited on desktop or mobile?), about passwords (when was it 
last changed?) — is really starting to hamper the experiences we can build in 
our clients.

Switching to a new format is difficult, because clients don’t have any logic to 
smoothly manage the transition. (We held off on minor version bumps for four 
years for this reason.)

But *most* clients are relatively up-to-date, and *many* changes can be phrased 
in a way that makes them backwardly compatible — e.g., adding an additional 
field to a record type[2].

So I propose a very incremental, far-from-perfect step: make such changes 
without bumping a version, ensuring that clients don’t rely on the presence of 
those fields. We’d quietly start putting timestamps in password records, and 
platform annotations in client records, document the hell out of it, and do the 
best we can.

Who is for, and who is against?

I am for.

What are our other options?

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).

I'm mostly surfacing this for completeness: there are major problems with this approach. But it is a way to move things forward. Perhaps we only do this for users whose device constellation only contains clients that are modern enough?

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".)

Neither of these are realistic given staffing levels and our project back logs. Incremental record changes, ahoy!

Nick
_______________________________________________
Sync-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/sync-dev

Reply via email to