process shared robust mutexes for tdb

Volker Lendecke Volker.Lendecke at SerNet.DE
Tue Dec 25 03:31:57 MST 2012


On Mon, Dec 24, 2012 at 09:43:07AM -0500, Ira Cooper wrote:
> Mutexes over mmap is actually fairly portable.  It is the robust mutexes
> over mmap that become less so.  But even then, I know 2 platforms that
> support them.  The Solaris/illumos family, and Linux.  That's not TOO bad.

There seems to be code in FreeBSD for that as well. Not sure
if it's released yet though.

> The numbers he's showing are not that unrealistic at all.  I've ran similar
> benchmarks.  The ability to decrease the cost of the locking primitives,
> and potentially avoid the context switch is pretty darn big.
> 
> If you are wondering about "Why not transactions" look at my tdb.git and
> the locking branch.  The work is incomplete, and I'll admit a mess, in an
> attempt to make transactions work.  Volker wisely chose against this
> approach.  (Or he had the benefit of reading my disaster.  One of the two!)
> 
> My only comment is: Volker, how are you handling "record" locking and not
> chain locking?  That was one part I never got 100% right.  (And on solaris
> using a mutex for everything is going to make someone cry... probably me.)

This patchset does not do per-record locking. So you will
still see fcntl for traverse. It carefully looks whether a
given lock offset/len is a lock for the freelist or
hashchain and falls back to fcntl if it does not match the
pattern. For me this is the most important use case.

Volker

-- 
SerNet GmbH, Bahnhofsallee 1b, 37081 Göttingen
phone: +49-551-370000-0, fax: +49-551-370000-9
AG Göttingen, HRB 2816, GF: Dr. Johannes Loxen
http://www.sernet.de, mailto:kontakt at sernet.de


More information about the samba-technical mailing list