On 11/12/2014 11:01, Mark Hammond wrote:
In today's Sync Engineering meeting we discussed how to "pull the
trigger" for the actual migration, particularly with consideration to
Firefox 37 riding the trains.
We discussed a number of options, but many of them didn't offer enough
bang-for-the-buck. What we came up with is:
I ran the plan past Bob (who runs Ops for sync, if you don't know him,
and who should now be on this list) and it seems OK to implement
server-side. Below are some more specific details of how we'd get it
done. Work will be tracked in this bug:
https://bugzilla.mozilla.org/show_bug.cgi?id=1110013
* On our request, Services will start sending EOL headers to a subset of
users (ie, throttled) who both (a) report as being 37+ and (b) only have
a single device linked to their account.
I propose to implement this in the server-side application code for
sync1.1, using a combination of two mechanisms:
1) On each incoming request, check the User-Agent header to see if it's
37+. If so then check the DB to see if they have a single client record.
If both of these checks are true, we can safely send EOL headers.
2) On each incoming request, calculate `x = userid % 100` to get a
number 0 <= x < 100. Only send EOL headers if x is below some
throttling threshold.
We'd start with both (1) and (2) in place and the throttling threshold
set to, say, 10 out of 100.
This won't be pretty, but it seems to strike a nice balance of caution
and pragmatism.
* If this seems to be working, we consider sending EOL headers to *all*
users who meet this criteria (ie, same criteria but unthrottled).
We'd achieve this by stepping up the throttling threshold to 100.
* At some point after 37 hits release, we move back to aggressive
throttling (ie, only for a fraction of users) but drop the criteria - we
offer it to users regardless of the version they are using and
regardless of the number of devices they have.
This corresponds to dropping check (1) and resetting the throttling
threshold for (2) back to 10. In theory, a simple config change on the
server.
* Based on telemetry and server-side stats, we slowly drop the throttling.
* Profit!
And we can switch the machines off. And there will be much rejoicing.
Bob, if what I've said here doesn't match your understanding of what we
discussed, please speak up now!
Cheers,
Ryan
_______________________________________________
Sync-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/sync-dev