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