-Firefox syncs many different types of browser data and (generally speaking) each one of these data types are synced by their own engine. When the app triggers a "sync" each engine makes their own determination of what needs to be synced (if anything). Many syncs can happen in a day (dozens or more on desktop, usually less on mobile). Telemetry about each sync is logged, and each [sync ping](https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/data/sync-ping.html) (sent once a day, and whenever the user logs in or out of sync) contains information about multiple syncs. The scala code responsible for creating the `sync_summary` dataset unpacks each sync ping into one row per sync. The resulting `engines` field is an array of "engine records": data about how each engine performed during that sync. `sync_flat_summary` further unpacking/exploding the `engines` field and creates a dataset that is one row per engine record.
0 commit comments