Quoting Joe Rhett <[EMAIL PROTECTED]>: > I doubt (I may be wrong) that the idea was to round everything -- just the > actual quota. So calculate each message normally and then round the total > to k to compare against the quota. > > Since the error of margin could be 1/2 k, with 1 million users you could > possibly end up using 500mb more space than you intended if they were all > overquota and at the top of the margin of error. I doubt this counts as a > significant problem.
Currently there are two numbers stored -- the amount of the quota and the current usage. If you store the current usage rounded to kB, then your error is as much as +-512 bytes per message. Multiply by millions of messages processed, and you have a serious problem, especially if it happens that most of your messages are of similar size. Also, the quota is incrementally updated, so when a message is deleted the size is subtracted from the amount used. If you don't round the current total, then you haven't accomplished anything since the number doesn't fit in 32 bits. The easiest solution is also the clearly correct one -- just use more bits to store the quota and current usage per quota root. -- John A. Tamplin Unix System Administrator