QA/Sync/Client/Sync Timers

From MozillaWiki
< QA‎ | Sync
Jump to: navigation, search

Purpose

  • A high level light weight document to explain client syncing timers/schedulers
  • This document is not intended as guide for planning or development. It is also not intended to detail programming code.
  • This page is a 'Living Document.' It will change. It is intended to reflect functionality of production Sync servers and Sync client on mozilla-central. As such, it will need to be maintained to keep up with functional changes as they occur.

Questions and Comments

  • Please feel free to add information requests inline (or fill gaps yourself)
  • If you have questions or comments regarding this document, contact:
 Tracy Walker
 twalker@mozilla.com
 irc: tracy

Instant Sync Triggers

Bookmarks

The following activities will cause a sync to be triggered instantly (100ms after triggering activity is compete)

  • Add a new bookmark
  • Delete a bookmark
  • alter a bookmark

Passwords

The following activities will cause a sync to be triggered instantly (100ms after triggering activity is compete)

  • Add a new password
  • Delete a password
  • update a password

Notes for instant syncs:

  • Instant syncs will set the next scheduled timer per possible configurations below.

Sync Client Timers and Schedulers

The Sync client has several configurations, found in about:config, that control "how often" syncs are triggered. Below are a list of those configurations and how they affect Syncs timing behavior.

services.sync.scheduler.singleDeviceInterval

This config is followed only for sync accounts that have a single device connected.

  • value = 86400 seconds (24 hours)
  • client behavior - next sync will occur in 24 hours

Notes:

  • Any manual sync resets the 24 hour timer.
  • No instant syncs or active/idle timers are triggered for single device sync account users.

services.sync.scheduler.immediateInterval

  • value = 90 seconds
  • client behavior - Whenever a new item is synced to a client (from the cloud/other client), the next sync will occur in 90 seconds.

services.sync.scheduler.activeInterval

  • value = 600 seconds (10 minutes)
  • client behavior - If the user is active (meaning user is browsing, but not triggering instant syncs or crossing score threshold), then next sync will occur in 10 minutes

services.sync.scheduler.idleTime

  • value = 300 seconds (5 minutes)
  • client behavior - if the user is not active with the client for 5 minutes, sync starts the idleInterval timer.

services.sync.scheduler.idleInterval

  • value = 3600 seconds (1 hour)
  • client behavior - if the user becomes idle, as in above idleTime, the next sync occurs in one hour from time of becoming idle.

Notes:

  • Returning from idle will trigger an instant sync.