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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html