Real short description of rgw quota feature implementation as was discussed:
1. Implement per-bucket quota
- we already have a per-bucket total info
- cache per-bucket info in rgw
- define per-bucket max (can set default per system, per user, per bucket)
- define a threshold for which operations are synchronous (e.g., 90%)
- if bucket crossed soft threshold then before each write, update
internal cache, check that not crossed hard limit
- update internal cache with approximated bucket info after write
- if not crossed soft threshold then use a ttl to determine when to
re-read the bucket info
- should reuse data log mechanism for that
2. per-user quota
- create a new user objclass
- move user bucket-list omap operations to objclass
- add a new namespace to user info omap
- add user objclass functions:
- set buckets info
- get total
- update per-bucket info
- per-user ttl should determine when to re-examine all user buckets.
This should only be used if user have had data modification since last
time all buckets were checked.
- cache per-user total in gateway
- if crossed soft threshold switch to sync mode (like in the bucket case)
- touched buckets should be updated periodically (in the user buckets list)
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html