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>