LGTM1
On 7/17/24 5:24 PM, Alex Turner wrote:
On Mon, Jul 15, 2024 at 11:03 AM Mike Taylor <miketa...@chromium.org>
wrote:
On 7/12/24 10:44 AM, Alex Turner wrote:
On Wed, Jul 10, 2024 at 11:25 AM Mike Taylor
<miketa...@chromium.org> wrote:
On 7/8/24 4:05 PM, Alex Turner wrote:
Interoperability and Compatibility
The Aggregation Service (used to process the aggregatable
reports) typically allows its releases to be used for up to
six months. To reduce the compatibility impact of this
change, we are waiting until all current Aggregation Service
releases support the new version before rolling to Stable.
Can you say more about this? How many parties are running
these services, and do we have any way of knowing what the
uptake of new versions is, or said differently - can we tell
if they're still on older versions?
Also, what happens if you send the filter ID to an older version?
The Aggregation Service in general has a six-month support
schedule
<https://github.com/privacysandbox/aggregation-service/wiki/Aggregation-Service-release-and-end%E2%80%90of%E2%80%90support-plan#release-and-end-of-support-schedules>,
i.e. attempts to use a release more than six months after it was
released will fail. Currently, there are three Aggregation
Service releases that are available for use (2.3, 2.4, 2.5). All
previous releases (2.2 and before) have already reached
end-of-support and can no longer be used.
I see - thanks. Just a few more questions to help me understand:
There's mention of an image hash allowlist - presumably this is
how you enforce versioning on the server side. Is that correct?
Yep, exactly.
Release 2.3 does not support the new report format, but we have
announced it will reach end-of-support on August 2nd, i.e. before
M128 reaches Stable. (Note that we have already enabled the
feature on Canary for testing.) Attempting to process reports
with the new “1.0” report version on this release will result in
the aggregation job failing with a descriptive error message. In
this case, however, no budget will be consumed and the
aggregation can be re-attempted (either on a newer release or
after excluding the “1.0” reports).
Why doesn't this count as a breaking change, per your wiki page?
Or the idea is you don't need to rev the major version number
because it will be unsupported before this feature is usable in
Chrome stable?
The Aggregation Service versioning scheme applies to server-side
changes only. That is, a breaking change is one that would require an
active migration for a partner when they update their Aggregation
Service release. As the processing changes on the server are backwards
compatible (more detail below), we haven't updated the major version.
When attempting to process the new “1.0” reports, the old Aggregation
Service releases (2.3 and before) error out and the new releases
(2.4+) succeed. So, we consider that new support to be backwards
compatible /server-side/.
OK - understood. These server errors won't affect clients sending the
new report version (and I realize I missed the distinction between
report and aggregation service version).
And when attempting to additionally specify custom filtering_ids /on
the server/, Aggregation Service release 2.4 doesn’t let you (always
uses the default, discussed below in more detail), while release 2.5
does let you. So, that change should also count as backwards compatible.
Separately, there’s a question of whether the /browser-side/ API
change (to change the report version/format) is backwards compatible.
While Aggregation Service release 2.3 is available, it is a breaking
change. But, it will be backwards compatible once all current
Aggregation Service releases support the report version (before M128
Stable).
Release 2.4 supports the new report format, but it does not allow
for filtering_ids to be specified for the aggregation; the
default value ([0]) is always used. On this release, existing
flows that do not use the new feature will be unaffected by the
report version change.
This also feels like a breakage change to me - if I'm using a
supported service version, but I can't use the updated report
version because I will get unexpected/inconsistent behavior with 2.5.
Let me clarify the behavior of Releases 2.4 and 2.5 a bit. On the web
API after this change, you can optionally specify a filtering ID for
each histogram contribution; if you don’t, the default of 0 is used.
On the server API, you can optionally specify which filtering IDs to
keep (i.e. all histogram contributions with other filtering IDs are
ignored for the aggregation). If you don’t specify any (either because
2.4 doesn’t let you or if you use the default in 2.5), the default of
keeping just filtering ID 0 is used.
So, any existing flows that don’t care about the new filtering ID
feature will behave exactly as before – all contributions are
processed as they all have the default filtering ID of 0.
Additionally, 2.4 and 2.5 have consistent behavior when no IDs are
specified server-side. But, if you want to process histogram
contributions with other/non-default filtering IDs, you need to
upgrade to 2.5 as those contributions will always be ignored in 2.4.
Thanks,
Alex
Release 2.5 supports the new report format and allows
filtering_ids to be specified for the aggregation. Developers who
want to use the new feature should upgrade to this release.
We don't currently have metrics on usage of each Aggregation
Service release, but plan to add those. Still, we have notified
partners of these considerations through the API mailing lists
<https://groups.google.com/a/chromium.org/g/shared-storage-api-announcements/c/qlL4kpdgvP0>.
We'll also remind partners of the upcoming end-of-support.
Thanks for the public comms - having some form of telemetry for
aggregation service versions in the wild does seem useful.
thanks,
Mike
--
You received this message because you are subscribed to the Google Groups
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/4ea815ba-5aad-4bfd-8056-ed30eacdef30%40chromium.org.