On Mon, 2004-02-16 at 13:25, Jeremy Kitchen wrote:
> On Mon, 2004-02-16 at 13:01, Nick Harring wrote:
> > > except for the segfaults adding domains and users when using mysql
> > > replication along with it :)
> > Which segfaults would those be? I use mysql replication and add users
> > all the time without any issues. I did this running both vpopmail 5.2.1
> > and 5.4.0-rc2. I've not yet added a domain under 5.4.0-rc2 but it worked
> > fine under 5.2.1, the only issue being that I manually had to add it to
> > the appropriate qmail files on each cluster server, though this is
> > automatable if I wished to do so.
> not sure exactly the cause, but every time I add a user it segfaults. 
> It works, but it segfaults.  I have an open bug ticket on sourceforge,
> and I'm currently working on getting a test bed set up (the setup it
> happens on is a client's cluster, I can't really go giving their
> information out all over the place ;)
Understandable. :) Odd though since I've not seen it at all and I've
done a lot (ie thousands) or user ops with both code bases and
essentially zero problems.
> > > unless you have at least 500 users, I'd stick with cdb.  mysql adds
> > > bloat to the binaries, and can make things slightly slower.
> >
> > Is there a reason that the mysql libs are statically rather than
> > dynamically linked? The bulk of the bloat comes from compiling in all of
> > that functionality. 
> well, and I'm not a programmer, so I'm not entirely sure, but I think
> that's the point of stripping the binaries, so you end up only having
> the functions necessary.  I would think that dynamically loading the
> module at run time would bring in the entire module, thereby having a
> far higher runtime footprint.  Plus, I would think that loading the
> module dynamically would cause a performance hit, especially since these
> are all one shot processes. Yes, the OS would/should cache it, but it's
> still there....
> Then again, I could be completely wrong.  Flames welcome.
Well, I'll not flame, but I will correct. Stripping removes debugging
symbols only which only get loaded, iirc, when you load the binary in a
debugger like gdb. 
The case for dynamic versus static libraries is a tricky one. With
dynamic you do load the same libraries over and over for one shot
binaries, however if they execute often enough, like vdelivermail on a
busy server, the cache will keep it in memory. Of course, this may also
be true of the larger binaries that are statically linked. Generally
though you'll end up suffering more with statically linked binaries that
get called often because they consume more of your cache, and each is
more likely to get expired from the cache since they don't reference
anything in common, whereas with a shared library that several often
executed binaries load its more likely to stay in cache since the
FS/VFS/whatever sees it being accessed more often.
> -Jeremy
Hope that helps,
Nicholas harring <[EMAIL PROTECTED]>
Webley Systems, Inc.

Reply via email to