Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 Jun 2000 09:26:10 +0100
From:      "Paul Walsh" <paul@walshsimmons.co.uk>
To:        "'Jason Evans'" <jasone@canonware.com>
Cc:        "'Scott Hess'" <scott@avantgo.com>, <freebsd-ports@freebsd.org>
Subject:   RE: FW: Thread issues on FreeBSD 3.4/4.0 with MySQL
Message-ID:  <003101bfd5da$3296e580$7bd1c8c2@nationnet.com>
In-Reply-To: <20000613173610.J47268@blitz.canonware.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Thanks for your comments. What confuses me slightly is why this seems to be
mainly a database problem. I understand that industrial strength RDBMSs have
only appeared relatively recently on FreeBSD/LINUX but surely any
app/service which has a lot of disk IO/threads will cause this - what about
web servers, news servers, syslogd which have been around getting heavy use
for ages?

Regards, Paul Walsh

  WALSH SIMMONS
  The Old Bank, 247 Chapel St, Manchester, UK
  T:01618399337 F:01618399336 ISDN:01618346884
  www.walshsimmons.co.uk
  Paul mobile: 07714 523312

Sweet dreams at http://www.laterooms.com

-----Original Message-----
From: Jason Evans [mailto:jasone@canonware.com]
Sent: 14 June 2000 01:37
To: Paul Walsh
Cc: freebsd-database@freebsd.org
Subject: Re: FW: Thread issues on FreeBSD 3.4/4.0 with MySQL


On Tue, Jun 13, 2000 at 08:32:23AM +0100, Paul Walsh wrote:
> Hi
>
> Could anybody comment on the following - we are trying to get a pretty
busy
> MySQL server optimised on FreeBSD4.0 having switched from 3.4 after
reading
> on the MySQL list:
>
> "if decide to go with FreeBSD, be sure to install the latest 4.0
> release as 3.x releases had quite some problems with thread libraries. "
>
> and receiving the comments below from Scott Hess

Scott's comments bring up a definite issue with FreeBSD's libc_r with
regard to databases.  libc_r is a userland library that does call
conversion to avoid blocking in the kernel.  Unfortunately, this isn't
possible for "fast devices", which is what hard drives are considered.
There isn't a good fix for this in libc_r; it's a design limitation of
userland threading.

There is another option, however.  There is the linuxthreads port, which is
a port of the LinuxThreads package normally associated with GNU libc.  This
threads package uses clone() (actually a special form of rfork() call on
FreeBSD) to run one thread per process.  With some tuning, you can probably
make this threads package scale reasonably to multiple processors/disks.
I've recently updated this port to the most recent released version of
LinuxThreads.  The port should be 100% compatible with LinuxThreads as they
run on Linux, except that I did not take the time to make the gdb hooks
work.

As for the future, we're working on a replacement for libc_r that will be a
first class threads implementation.  This will probably be done for FreeBSD
5.0, but that doesn't help in the short term, which is why I recommend the
linuxthreads port.

Jason

_____________________________________________________________________
This message has been checked for all known viruses by Star Internet
delivered
through the MessageLabs Virus Control Centre. For further information visit
http://www.star.net.uk/stats.asp



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?003101bfd5da$3296e580$7bd1c8c2>