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

Jump to navigation Jump to search
no edit summary
No edit summary
No edit summary
Line 2: Line 2:


On a write
On a write
- If a user has no quota entry, grab the list from the database and put it into memcache along with the current timestamp
# If a user has no quota entry, grab the list from the database and put it into memcache along with the current timestamp
- get current total and associated timestamp
# get current total and associated timestamp
- if total > low_threshold and timestamp is older than 1h - refetch total from db and reset total and timestamp in memcache
# if total > low_threshold and timestamp is older than 1h - refetch total from db and reset total and timestamp in memcache
- if total > quota, reject write
# if total > quota, reject write
- write data
# write data
- 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 header
   
   
On a delete
On a delete
- delete data
# delete data
- delete user quota record from memcache
# delete user quota record from memcache


add /info/collection_usage (requires version bump to 1.1)
add /info/collection_usage (requires version bump to 1.1)
- get grouped collection totals
# get grouped collection totals
- write overall total to memcache
# sum them and write overall total (and timestamp) to memcache
   
   
monitoring script
monitoring script
- when user total is calculated, update memcache (may be firewall issues here)
# when user total is calculated, update memcache (may be firewall issues here)
canmove, Confirmed users
1,173

edits

Navigation menu