Subject: alternative service probability parameter

From: Bence Béky <[email-masked]>
Date: Fri, 8 May 2015 09:37:15 -0400

Hello httpbis,

This is a heads up about a parameter that we have been using in
Alternate-Protocol headers, and are planning to use in Alt-Svc headers
and ALTSVC frames.  It is "p=" (probability), that Google servers emit
and Chrome observes.  This takes a numerical value between 0.0 and 1.0
inclusive, and tells the client to only observe the alternative
service with that given probability (and ignore it otherwise).  This
parameter can be used for finer grade load balancing, for gradual
rollout of a new protocol, and for performance testing.

My understanding is that the current HTTP Alternative Services draft
at https://tools.ietf.org/id/draft-ietf-httpbis-alt-svc-06.html#rfc.section.3
permits parameters other than "ma=", therefore using a customary
parameter is conformant to the specification.

If there is interest in more technical documentation of this
parameter, I would be happy to coordinate efforts of writing that
documentation on our part.  Given that according to my best
understanding, the Alternative Services specification is not in Last
Call yet, there is the possibility of including the probability
parameter in that document in case there is a benefit to the
community.  In case of lack of interest, this was just an FYI.

Thank you,

Bence

---

From: Amos Jeffries <[email-masked]>
Date: Sat, 09 May 2015 07:49:22 +1200

> rollout of a new protocol, and for performance testing.

Why not reusing the standard qvalue / ranking, like other standard
documents do?
  <http://tools.ietf.org/html/rfc7231#section-5.3.1>

Amos

---

From: Ryan Hamilton <[email-masked]>
Date: Fri, 8 May 2015 14:05:11 -0700

>   <http://tools.ietf.org/html/rfc7231#section-5.3.1>

​Interesting idea! I can definitely see reusing the syntax, but I suspect
it needs some added semantics. In particular, the way we use p= at Google
is to ​make sure that if p=.5 then 50% of users will use the alternative
and 50% will not. But more strongly than that, we need to have all users in
the "use it" group to use it for all servers that advertise p=.5. Because
page loads often pull in resources from multiple domains/server it is
critical that we be able to do realistic A/B comparisons. From reading the
qvalue section it doesn't sound like it fits exactly. But I could imagine a
small change to the Alt-Svc draft to clarify this in the Alt-Svc context.

The other question I have is if we want to do 50% use the alternative 50%
don't, I assume we would need to emit 2 alternatives both with the same q=
value. The first is the "real" alternative, the second is the default
protocol. Is that how you would imagine this working?

Cheers,

Ryan

---

From: Erik Nygren <[email-masked]>
Date: Fri, 8 May 2015 18:05:30 -0400

For anything stable for experimental selection,  it seems you'd want a seed
that mixes in also communicated as you don't want hosts to always be opted
in to everyone's rollouts and experiments.   Anything per-client
deterministic seems like it could be a path to identify users if not
careful.

Sent from my mobile device

---

From: Julian Reschke <[email-masked]>
Date: Sat, 09 May 2015 17:59:45 +0200

On 2015-05-08 15:37, Bence Béky wrote:
> ...

The syntax allow is, but we haven't described how new ones can be defined.

-> opened <https://github.com/httpwg/http-extensions/issues/69>

Best regards, Julian