using skiplist for quotas.db

Kjetil Torgrim Homme kjetilho at ifi.uio.no
Fri Jan 19 09:42:26 EST 2007


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