You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Jeff Trawick <tr...@gmail.com> on 2012/10/08 14:34:45 UTC

Re: svn commit: r1395417 - in /httpd/httpd/trunk/docs/manual: mpm.html.en mpm.xml

On Sun, Oct 7, 2012 at 6:59 PM,  <rb...@apache.org> wrote:
> Author: rbowen
> Date: Sun Oct  7 22:59:14 2012
> New Revision: 1395417
>
> URL: http://svn.apache.org/viewvc?rev=1395417&view=rev
> Log:
> Adds some clarification to the statement that the default MPM is
> selected based on platform capabilities.
>
> Modified:
>     httpd/httpd/trunk/docs/manual/mpm.html.en
>     httpd/httpd/trunk/docs/manual/mpm.xml
>
> Modified: httpd/httpd/trunk/docs/manual/mpm.html.en
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/mpm.html.en?rev=1395417&r1=1395416&r2=1395417&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/docs/manual/mpm.html.en (original)
> +++ httpd/httpd/trunk/docs/manual/mpm.html.en Sun Oct  7 22:59:14 2012
> @@ -99,6 +99,28 @@ choice at compile-time.</p>
>      <code class="module"><a href="./mod/event.html">event</a></code>, depending on platform capabilities</td></tr>
>  <tr class="odd"><td>Windows</td><td><code class="module"><a href="./mod/mpm_winnt.html">mpm_winnt</a></code></td></tr>
>  </table>
> +
> +<div class="note"><p>Here, 'Unix' is used to mean Unix-like operating systems, such as
> +Linux, BSD, Solaris, Mac OS X, etc.</p></div>
> +
> +<p>In the case of Unix, the decision as to which MPM is installed is
> +based on two questions:</p>
> +<p>1. Does the system support <a href="http://en.wikipedia.org/wiki/Threads_(computer_science)">threads</a>?</p>
> +<p>2. Does the system support <a href="http://en.wikipedia.org/wiki/Polling_(computer_science)">polling</a>?</p>
> +
> +<p>If the answer to both questions is 'yes', the default MPM is
> +<code class="module"><a href="./mod/event.html">event</a></code>.</p>

It isn't that simple.

APR_POLLSET_THREADSAFE has to be supported, and that is more than the
well-known capabilities of threads and polling.

APR_POLLSET_THREADSAFE means that the platform has an advanced polling
mechanism which allows pollsets to be manipulated in a certain way,
and that APR has an implementation that uses that mechanism.

Linux, Solaris, and FreeBSD/Mac OS X are platforms that satisify both
characteristics.  z/OS is a platform that has an advanced polling
mechanism but without an APR implementation in the stable branches.
Neither AIX nor HP-UX have APR implementations, though I'd guess that
the OS has the feature and nobody has gotten around to exploiting it
in APR.

> +
> +<p>If The answer to #1 is 'yes', but the answer to #2 is 'no', the
> +default will be <code class="module"><a href="./mod/worker.html">worker</a></code>.</p>
> +
> +<p>If the answer to both questions is 'no', then the default MPM will be
> +<code class="module"><a href="./mod/prefork.html">prefork</a></code>.</p>
> +
> +<p>In practical terms, this means that the default will almost always be
> +<code class="module"><a href="./mod/event.html">event</a></code>, as all modern operating systems support these
> +two features.</p>
> +
>  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
>  <div class="section">
>  <h2><a name="static" id="static">Building an MPM as a static module</a></h2>
>
> Modified: httpd/httpd/trunk/docs/manual/mpm.xml
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/mpm.xml?rev=1395417&r1=1395416&r2=1395417&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/docs/manual/mpm.xml (original)
> +++ httpd/httpd/trunk/docs/manual/mpm.xml Sun Oct  7 22:59:14 2012
> @@ -89,6 +89,30 @@ choice at compile-time.</p>
>      <module>event</module>, depending on platform capabilities</td></tr>
>  <tr><td>Windows</td><td><module>mpm_winnt</module></td></tr>
>  </table>
> +
> +<note><p>Here, 'Unix' is used to mean Unix-like operating systems, such as
> +Linux, BSD, Solaris, Mac OS X, etc.</p></note>
> +
> +<p>In the case of Unix, the decision as to which MPM is installed is
> +based on two questions:</p>
> +<p>1. Does the system support <a
> +href="http://en.wikipedia.org/wiki/Threads_(computer_science)">threads</a>?</p>
> +<p>2. Does the system support <a
> +href="http://en.wikipedia.org/wiki/Polling_(computer_science)">polling</a>?</p>
> +
> +<p>If the answer to both questions is 'yes', the default MPM is
> +<module>event</module>.</p>
> +
> +<p>If The answer to #1 is 'yes', but the answer to #2 is 'no', the
> +default will be <module>worker</module>.</p>
> +
> +<p>If the answer to both questions is 'no', then the default MPM will be
> +<module>prefork</module>.</p>
> +
> +<p>In practical terms, this means that the default will almost always be
> +<module>event</module>, as all modern operating systems support these
> +two features.</p>
> +
>  </section>
>
>  <section id="static"><title>Building an MPM as a static module</title>
>
>



-- 
Born in Roswell... married an alien...
http://emptyhammock.com/

Re: svn commit: r1395417 - in /httpd/httpd/trunk/docs/manual: mpm.html.en mpm.xml

Posted by Rich Bowen <rb...@rcbowen.com>.
On Oct 8, 2012, at 10:32 AM, Jeff Trawick wrote:

> It isn't that simple.
> 
> APR_POLLSET_THREADSAFE has to be supported, and that is more than the
> well-known capabilities of threads and polling.
> 
> APR_POLLSET_THREADSAFE means that the platform has an advanced polling
> mechanism which allows pollsets to be manipulated in a certain way,
> and that APR has an implementation that uses that mechanism.
> 
> Linux, Solaris, and FreeBSD/Mac OS X are platforms that satisify both
> characteristics.  z/OS is a platform that has an advanced polling
> mechanism but without an APR implementation in the stable branches.
> Neither AIX nor HP-UX have APR implementations, though I'd guess that
> the OS has the feature and nobody has gotten around to exploiting it
> in APR.

Thank you for the clarification. I'll further clarify what I put in the docs as soon as I have a chance.

-- 
Rich Bowen
rbowen@rcbowen.com
Shosholoza



Re: svn commit: r1395417 - in /httpd/httpd/trunk/docs/manual: mpm.html.en mpm.xml

Posted by Rich Bowen <rb...@rcbowen.com>.
>> --- httpd/httpd/trunk/docs/manual/mpm.html.en (original)
>> +++ httpd/httpd/trunk/docs/manual/mpm.html.en Sun Oct  7 22:59:14 2012
>> @@ -99,6 +99,28 @@ choice at compile-time.</p>
>>     <code class="module"><a href="./mod/event.html">event</a></code>, depending on platform capabilities</td></tr>
>> <tr class="odd"><td>Windows</td><td><code class="module"><a href="./mod/mpm_winnt.html">mpm_winnt</a></code></td></tr>
>> </table>
>> +
>> +<div class="note"><p>Here, 'Unix' is used to mean Unix-like operating systems, such as
>> +Linux, BSD, Solaris, Mac OS X, etc.</p></div>
>> +
>> +<p>In the case of Unix, the decision as to which MPM is installed is
>> +based on two questions:</p>
>> +<p>1. Does the system support <a href="http://en.wikipedia.org/wiki/Threads_(computer_science)">threads</a>?</p>
>> +<p>2. Does the system support <a href="http://en.wikipSo, edia.org/wiki/Polling_(computer_science)">polling</a>?</p>
>> +
>> +<p>If the answer to both questions is 'yes', the default MPM is
>> +<code class="module"><a href="./mod/event.html">event</a></code>.</p>
> 
> It isn't that simple.
> 
> APR_POLLSET_THREADSAFE has to be supported, and that is more than the
> well-known capabilities of threads and polling.
> 
> APR_POLLSET_THREADSAFE means that the platform has an advanced polling
> mechanism which allows pollsets to be manipulated in a certain way,
> and that APR has an implementation that uses that mechanism.
> 
> Linux, Solaris, and FreeBSD/Mac OS X are platforms that satisify both
> characteristics.  z/OS is a platform that has an advanced polling
> mechanism but without an APR implementation in the stable branches.
> Neither AIX nor HP-UX have APR implementations, though I'd guess that
> the OS has the feature and nobody has gotten around to exploiting it
> in APR.


So, how about:

======================================
In the case of Unix, the decision as to which MPM is installed by default is based on two questions:

1. Does the system support threading?
2. Does the system support APR_POLLSET_THREADSAFE?

Linux, Solaris, FreeBSD and Mac OS X are platforms that satisfy both characteristics.

If the answer to both questions is 'yes', the default MPM is event.

If The answer to #1 is 'yes', but the answer to #2 is 'no', the default will be worker.

If the answer to both questions is 'no', then the default MPM will be prefork.

(strike last sentence)
=========================================

Or, is it better to leave off the details entirely? I thought it would be good to give folks an idea of what the default are. For most people, the default will presumably be event ... except when it's not. Right?


-- 
Rich Bowen
rbowen@rcbowen.com :: @rbowen
rbowen@apache.org







Fwd: svn commit: r1395417 - in /httpd/httpd/trunk/docs/manual: mpm.html.en mpm.xml

Posted by Jeff Trawick <tr...@gmail.com>.
---------- Forwarded message ----------
From: Jeff Trawick <tr...@gmail.com>
Date: Mon, Oct 8, 2012 at 8:34 AM
Subject: Re: svn commit: r1395417 - in /httpd/httpd/trunk/docs/manual:
mpm.html.en mpm.xml
To: dev@httpd.apache.org


On Sun, Oct 7, 2012 at 6:59 PM,  <rb...@apache.org> wrote:
> Author: rbowen
> Date: Sun Oct  7 22:59:14 2012
> New Revision: 1395417
>
> URL: http://svn.apache.org/viewvc?rev=1395417&view=rev
> Log:
> Adds some clarification to the statement that the default MPM is
> selected based on platform capabilities.
>
> Modified:
>     httpd/httpd/trunk/docs/manual/mpm.html.en
>     httpd/httpd/trunk/docs/manual/mpm.xml
>
> Modified: httpd/httpd/trunk/docs/manual/mpm.html.en
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/mpm.html.en?rev=1395417&r1=1395416&r2=1395417&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/docs/manual/mpm.html.en (original)
> +++ httpd/httpd/trunk/docs/manual/mpm.html.en Sun Oct  7 22:59:14 2012
> @@ -99,6 +99,28 @@ choice at compile-time.</p>
>      <code class="module"><a href="./mod/event.html">event</a></code>, depending on platform capabilities</td></tr>
>  <tr class="odd"><td>Windows</td><td><code class="module"><a href="./mod/mpm_winnt.html">mpm_winnt</a></code></td></tr>
>  </table>
> +
> +<div class="note"><p>Here, 'Unix' is used to mean Unix-like operating systems, such as
> +Linux, BSD, Solaris, Mac OS X, etc.</p></div>
> +
> +<p>In the case of Unix, the decision as to which MPM is installed is
> +based on two questions:</p>
> +<p>1. Does the system support <a href="http://en.wikipedia.org/wiki/Threads_(computer_science)">threads</a>?</p>
> +<p>2. Does the system support <a href="http://en.wikipedia.org/wiki/Polling_(computer_science)">polling</a>?</p>
> +
> +<p>If the answer to both questions is 'yes', the default MPM is
> +<code class="module"><a href="./mod/event.html">event</a></code>.</p>

It isn't that simple.

APR_POLLSET_THREADSAFE has to be supported, and that is more than the
well-known capabilities of threads and polling.

APR_POLLSET_THREADSAFE means that the platform has an advanced polling
mechanism which allows pollsets to be manipulated in a certain way,
and that APR has an implementation that uses that mechanism.

Linux, Solaris, and FreeBSD/Mac OS X are platforms that satisify both
characteristics.  z/OS is a platform that has an advanced polling
mechanism but without an APR implementation in the stable branches.
Neither AIX nor HP-UX have APR implementations, though I'd guess that
the OS has the feature and nobody has gotten around to exploiting it
in APR.

> +
> +<p>If The answer to #1 is 'yes', but the answer to #2 is 'no', the
> +default will be <code class="module"><a href="./mod/worker.html">worker</a></code>.</p>
> +
> +<p>If the answer to both questions is 'no', then the default MPM will be
> +<code class="module"><a href="./mod/prefork.html">prefork</a></code>.</p>
> +
> +<p>In practical terms, this means that the default will almost always be
> +<code class="module"><a href="./mod/event.html">event</a></code>, as all modern operating systems support these
> +two features.</p>
> +
>  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
>  <div class="section">
>  <h2><a name="static" id="static">Building an MPM as a static module</a></h2>
>
> Modified: httpd/httpd/trunk/docs/manual/mpm.xml
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/mpm.xml?rev=1395417&r1=1395416&r2=1395417&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/docs/manual/mpm.xml (original)
> +++ httpd/httpd/trunk/docs/manual/mpm.xml Sun Oct  7 22:59:14 2012
> @@ -89,6 +89,30 @@ choice at compile-time.</p>
>      <module>event</module>, depending on platform capabilities</td></tr>
>  <tr><td>Windows</td><td><module>mpm_winnt</module></td></tr>
>  </table>
> +
> +<note><p>Here, 'Unix' is used to mean Unix-like operating systems, such as
> +Linux, BSD, Solaris, Mac OS X, etc.</p></note>
> +
> +<p>In the case of Unix, the decision as to which MPM is installed is
> +based on two questions:</p>
> +<p>1. Does the system support <a
> +href="http://en.wikipedia.org/wiki/Threads_(computer_science)">threads</a>?</p>
> +<p>2. Does the system support <a
> +href="http://en.wikipedia.org/wiki/Polling_(computer_science)">polling</a>?</p>
> +
> +<p>If the answer to both questions is 'yes', the default MPM is
> +<module>event</module>.</p>
> +
> +<p>If The answer to #1 is 'yes', but the answer to #2 is 'no', the
> +default will be <module>worker</module>.</p>
> +
> +<p>If the answer to both questions is 'no', then the default MPM will be
> +<module>prefork</module>.</p>
> +
> +<p>In practical terms, this means that the default will almost always be
> +<module>event</module>, as all modern operating systems support these
> +two features.</p>
> +
>  </section>
>
>  <section id="static"><title>Building an MPM as a static module</title>
>
>



--
Born in Roswell... married an alien...
http://emptyhammock.com/


-- 
Born in Roswell... married an alien...
http://emptyhammock.com/

---------------------------------------------------------------------
To unsubscribe, e-mail: docs-unsubscribe@httpd.apache.org
For additional commands, e-mail: docs-help@httpd.apache.org