Users who stop using the service for an extended period of time should not continue to consume resources (primarily disk space). Other services (most notably Yahoo Mail) actually delete user data. As Sync is not considered to be a backup service, the canonical data source is the client, and an empty server triggers a full upload on next sync.
- One possibility is to archive idle user data to slower/bigger disks, and restore to a full storage node when the user reconnects. This has a significant cost over the long term, and the amount of change over a period of months would still require a very large sync operation by the client to catch up the server data.
- Another possibility is to simply drop user data, and allow a full upload if/when that user reconnects. The experience would be the same as a first sync.
Dropping User Data (Product-level changes)
This is the most cost-effective solution, and simply requires appropriate details in the Terms of Service (i.e. this is not a backup service, and inactivity will result in the server-side data cache being purged).
The client will not require additional changes to support this.
Dropping User Data (Technical Implementation)
Effectively, we will find users that have not been active over a period of N days, measured by most recent timestamp data. Users deemed idle will be added to a list (mechanism TBD).
- We will first clear the user's node assignment in LDAP.
- Next, we will delete the user's data from the wbo table on the storage node. (delete from wbo where username = uid)
- Optional: Once the account has been purged, we can send a "thanks for using Firefox Sync" email indicating that the server cache has been dropped due to inactivity.
- Perhaps we can also send a warning/notification email a few days before we'll actually purge their data?