threads - use them as much as you can

Sean Hinde Sean.Hinde@REDACTED
Sat Dec 2 14:18:54 CET 2000

> > In R7B (the current release) there is a new feature which 
> introduces a pool
> > of native threads for i/o operations but this is disabled 
> by default. This
> > will get around the hanging problem /.../ 

I thought some more about my original reply and should probably add that
during testing I have absolutely hammered mnesia with database writes to a
disc_copies table at full speed, while at the same time having another node
performing timed reads at 100 per second on the same table (all on a single
processor 167 MHz SPARC :o) ).

The worst blocking I got under standard Unix File System was a pause of 5
seconds which only occurred occasionally during the mnesia log dump. The
vast majority of reads were returned in millisecs.

Using Veritas File system (or I guess any of the other new journaling file
systems) I never managed to get the disk writing node to block my reads for
more than 1.5 seconds under these conditions (again 1 in thousands).

My conclusion was that the Erlang VM does a pretty incredible job of
managing this real time stuff - far far better than quite a number of
commercial databases I have come across.

Note that this was without multithreaded i/o... And It's getting better,
better all the time.

- Sean

This email (including attachments) is confidential.  If you have received
this email in error please notify the sender immediately and delete this
email from your system without copying or disseminating it or placing any
reliance upon its contents.  We cannot accept liability for any breaches of
confidence arising through use of email.  Any opinions expressed in this
email (including attachments) are those of the author and do not necessarily
reflect our opinions.  We will not accept responsibility for any commitments
made by our employees outside the scope of our business.  We do not warrant
the accuracy or completeness of such information.

More information about the erlang-questions mailing list