Services/Sync/Server/Notes/QuotaAlgo: Difference between revisions
Jump to navigation
Jump to search
m (moved Labs/Weave/QuotaAlgo to Services/Sync/Server/Notes/QuotaAlgo) |
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
- 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
- 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
- add sum of incoming payloads to quota
- if total > low_threshold, add an X-Weave-Quota header
On a delete
- delete user quota record from memcache
add /info/collection_usage (requires version bump to 1.1)
- get grouped collection totals
- sum them and write overall total (and timestamp) to memcache
monitoring script
- when user total is calculated, update memcache (may be firewall issues here)