using skiplist for quotas.db

Ken Murchison murch at andrew.cmu.edu
Fri Jan 19 09:56:28 EST 2007


Or things get mangled and people end up over quota.

(from my Treo)
-- 
Kenneth Murchison
Systems Programmer
Project Cyrus Developer/Maintainer
Carnegie Mellon University

-----Original Message-----
From: "Kjetil Torgrim Homme" <kjetilho at ifi.uio.no>
To: "Ken Murchison" <murch at andrew.cmu.edu>
Cc: "Rob Mueller" <robm at fastmail.fm>; info-cyrus at lists.andrew.cmu.edu
Sent: 1/19/07 9:42 AM
Subject: Re: using skiplist for quotas.db

On Fri, 2007-01-19 at 07:49 -0500, Ken Murchison wrote:
> Rob Mueller wrote:
> > The problem I saw was that accessing a skiplist db involves locking the 
> > entire file I believe. This felt like a huge point of contention, 
> > especially since every email delivered would lock it. I never did end up 
> > trying it out to test that though, so I wouldn't quote me on that, Ken 
> > could confirm.
> 
> This is true.  If you want to use a single database, I would consider 
> using BDB (as painful as it sounds), since it does localized locking.  I 
> don't believe that either choice has been tested thoroughly however.

hmmm.

*reads cyrusdb_skiplist.c*

there's an interesting comment in mycommit about moving the unlock to
before the fsync.  that would be a very nice performance hack, but
should preferably be settable per database, e.g. adding a
"skiplist_nosync" to mimic "berkeley_nosync".  after all, the quota
database isn't critical information, it's updated from an authoritative
source, anyway.

I'll see if I can muster the courage to try this out.  the worst that
can happen is that users don't have any quota limits at all, right? :)

thanks for the input, Rob and Ken.
-- 
Kjetil T.






More information about the Info-cyrus mailing list