← Back to team overview

maria-developers team mailing list archive

Some notes on pool_of_threads


Hi there,
I've been playing around with the pool_of_threads addition and here is some
of what I've found:
All of this was on Mac OSX 10.5

1)  Biggie here:  Running the server with the --extra-port=NNNN option (with
pool-of-threads set) causes the server to start then immediately stop.  I'm
still looking through logs and trace files to see if I can find anything
meaningful.  I am able to run without setting extra-port though.

2)  We can set extra-max-connections when --extra-port isn't set.  The limit
is 100000, at least on my system.  As I haven't been able to get the server
running with extra-port yet, I haven't tested much beyond this.

3)  We can also set thread-pool-size even if thread-handling isn't set to
pool-of-threads.  It's limit appears to be < 2560 (I was running into some
mess on my system so I haven't pinpointed it yet).  The biggest thing is
that if thread-pool-size is set too large, we just get a start and stop
(Once again, my logs are a bit of a mess due to 'play', so I'll have more
info on the server behavior in a bit).

4)  I found that if the number of connections is = thread-pool-size, new
connections will terminate within 'connect-timeout' seconds (there was some
question about whether we had to wait for the denied connection to receive a
message until after a thread was freed).

5)  Due to these problems (most especially #1), main.pool_of_threads.test
fails on my machine.  If I remove the --extra-port stuff, the test will run
more than otherwise (the server dies quickly with extra-port stuff).

For extra-max-connections and thread-pool-size, do we want to allow these to
be set even if they aren't relevant to the way the server is currently

Is there any specific information I can provide if anyone wants to look into
why the server dies when I try to use --extra-port?

Testing notes:
1)  I have some changes to make to pool_of_threads.test (style, additional
testing, etc).
2)  We should also add some testing for extra-max-connections,
thread-pool-size, etc.  Possibly to variables.test, though somewhere else
would work.  I've played around a bit with dynamically changing the
variables, etc.  I just can't get MTR to run the test to really polish my
proposed changes before submitting a patch.


Follow ups