Services/Sync/Server/Notes/QuotaAlgo: Difference between revisions

From MozillaWiki
< Services‎ | Sync‎ | Server
Jump to navigation Jump to search
No edit summary
Line 7: Line 7:
# if total > quota, reject write
# if total > quota, reject write
# add sum of incoming payloads to quota
# add sum of incoming payloads to quota
# if total > low_threshold, add an X-Weave header
# if total > low_threshold, add an X-Weave-Quota header
   
   
On a delete
On a delete

Revision as of 16:50, 21 July 2010

Define low_threshold = quota - 1M

On a write

  1. If a user has no quota entry, grab the list from the database and put it into memcache along with the current timestamp
  2. get current total and associated timestamp
  3. if total > low_threshold and timestamp is older than 1h - refetch total from db and reset total and timestamp in memcache
  4. if total > quota, reject write
  5. add sum of incoming payloads to quota
  6. if total > low_threshold, add an X-Weave-Quota header

On a delete

  1. delete user quota record from memcache

add /info/collection_usage (requires version bump to 1.1)

  1. get grouped collection totals
  2. sum them and write overall total (and timestamp) to memcache

monitoring script

  1. when user total is calculated, update memcache (may be firewall issues here)