MESSAGE quota resource implemention

Greg Banks gnb at fastmail.fm
Tue Sep 6 02:48:18 EDT 2011


On 05/09/11 20:16, Greg Banks wrote:
> On 02/09/11 20:03, Bron Gondwana wrote:
>> On Fri, Sep 02, 2011 at 07:36:20PM +1000, Greg Banks wrote:
>>
>>> How's about this for a strategy?
>>>
>>> When a quota resource is first enabled, (i.e. the limit is changed from
>>> UNLIMITED to some finite value), the usage is stored as some special
>>> value which I'll call INDETERMINATE.
>>
>> What about 'getquota'?  I don't support any solution which leaves getquota
>> returning bogus values or failing to respond.  That's just icky and
>> confusing.
>>
>> I don't think you can avoid two passes, and I don't even think you can
>> avoid two values during if you really want to be good about it.
>>
>> [...]
>>
>> There are pure ways to do this, that guarantee consistency. [...]
>>
>> That's a real, robust solution.  But it's pretty heavy engineering.
> 
> After some thought, I agreed, decided it's quite doable, and decided to
> start. I have an implementation coded, so far the hardest bit is testing it.

Implemented, tested, and I'd appreciate a review.

https://github.com/gnb/cyrus-imapd/commit/af8d5bd3b40c4cb49fb7c943c85cb0aeab209215

https://github.com/gnb/cassandane/commit/c529f745b51aa0b566020ecbffca774e783124ee
https://github.com/gnb/cassandane/commit/569eea2b9a2ad56b98c3c5cea60509689fa49bad



-- 
Greg.


More information about the Cyrus-devel mailing list