You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Paul A Houle <ph...@cornell.edu> on 2005/08/22 19:07:09 UTC

httpd has no reason to improve...

Ben Collins-Sussman wrote:

> I see a lot of frustration going on.  The thing is, httpd's  
> development process is nearly identical to Subversion's process... we  
> stole most of it from you folks!  So why all the angst in httpd-land,  
> but not in Subversion-land?

    It's really a lack of direction.

    Apache already is the market leader in the web server space and has 
no potential for further growth -- Windows users aren't going to switch 
to Apache in significant numbers.  (They never were,  so developing a 
good NT port was a waste of resources that has helped paralyze the 
development of Apache for it's core users.)  This in contrast to svn,  
which has a long way to go in growth.

    There is very little going on in Apache to make it be a better web 
server -- the frontiers of development are trying to make it an ftp 
server,  an smtp server,  a ntp server,  a snpd server,  a bgp 
server...  Efforts that 99.44% of httpd users are completely indifferent 
to (Ok,  maybe a few of them will want to turn on an ftp server because 
they're not getting enough support calls from people who are behind NAT 
or firewalls.)

    The module mechanism means that significant improvements in Apache 
can be made without making changes to the Apache distribution -- people 
are who are serious about improving Apache as a web server are taking 
this route and not adding things to the Apache distribution.  (Any 
change which affects the core use of Apache is politically controversial 
and gets an automatic -1.)

    Pluggable MPMs sound like a good idea in theory,  but in practice 
they're a failure.  It's hard enough writing code that runs in a single 
concurrent environment,  but impossible if the concurrency environment 
is unknown and unknowable.  It's hard enough keeping the modules that 
are part of the distribution working under all MPMs,  even harder to 
support third-party modules (mod_php) and even harder to support all the 
libraries that link against third-party modules (kiss of death for 
mod_php and mod_perl in worker.)

-----------

    People who want to wake Apache up would be best to try a fork.  
Throw things that are irrelevant to running httpd on Posix overboard.  
Pick ONE mpm that offers a significant advance in functionality 
(mod_event or mod_perchild that actually works) and qualify everything 
to run against it.  Add mod_macro.

    But why?  Apache is good enough for most people,  and you can fix 
any real problems for a particular project by adding modules or making 
little source code patches.  There are 1,000 or so sites in the world 
that need an MPM faster than prefork,  and they'd be better off going to 
a cluster strategy for availability anyway.

    Apache 2 was a rough ride,  but Apache 2.0.54 runs smooth on every 
installation I have...  Why change anything?





Re: httpd has no reason to improve...

Posted by Nick Kew <ni...@webthing.com>.
Paul A Houle wrote:
> Ben Collins-Sussman wrote:
> 
>> I see a lot of frustration going on.  The thing is, httpd's  
>> development process is nearly identical to Subversion's process... we  
>> stole most of it from you folks!  So why all the angst in httpd-land,  
>> but not in Subversion-land?

Too many versions.  And conflicting views on how to deal with them.

>    It's really a lack of direction.

Lack of what?

Support for major up-and-coming technologies like LDAP?
A working cacheing framework?
The biggest improvement in database management since mod_perl
pioneered the LAMP architecture ten years ago?
Untying authentication protocols from provider implementations?

I could go on, but those seem like worthwhile directions.
All happening because people want them.

>    There is very little going on in Apache to make it be a better web 
> server

Nonsense.

  -- the frontiers of development are trying to make it an ftp
> server,  an smtp server,  a ntp server,  a snpd server,  a bgp 

Erm, I know we're doing SMTP: that's to harness the input filter chain
for spam filtering.  FTP has been around for some time.  Where are all
those other protocols?

>    The module mechanism means that significant improvements in Apache 
> can be made without making changes to the Apache distribution -- people 
> are who are serious about improving Apache as a web server are taking 
> this route and not adding things to the Apache distribution.  (Any 

Indeed, we can do a lot with modules.  A number of us who are now core
developers started out as application developers writing modules.  The
more modules you write, the more you see how the core product can be
improved, the more you contribute.  Well, that's (broadly speaking) how
I came to Apache, and I'm not the only one.

Before 2.0 - specifically filters - Apache didn't cut it for
applications.  The payback for writing modules (as opposed to
apps running under CGI, mod_perl, etc) wasn't worth the effort
from my PoV.

>    People who want to wake Apache up would be best to try a fork.  Throw 
> things that are irrelevant to running httpd on Posix overboard.  Pick 
> ONE mpm that offers a significant advance in functionality (mod_event or 
> mod_perchild that actually works) and qualify everything to run against 
> it.  Add mod_macro.

Feel free to do exactly that.  I don't find it a problem to write
modules that work across platforms and MPMs, and I value the fact that
modules work cross-platform without hair-tearing (and with less trouble
and overhead than many cross-platform environments like Java).

>    But why?  Apache is good enough for most people,  and you can fix any 
> real problems for a particular project by adding modules or making 
> little source code patches.  There are 1,000 or so sites in the world 
> that need an MPM faster than prefork,  and they'd be better off going to 
> a cluster strategy for availability anyway.

What's "faster than" got to do with it?  You want a justification for
threaded MPMs, just look at connection pooling apps, and the first
big advance in scalability since LAMP.

>    Apache 2 was a rough ride,  but Apache 2.0.54 runs smooth on every 
> installation I have...  Why change anything?

I hope you don't run those new-fangled gadgets like a mouse?

-- 
Nick Kew

Re: httpd has no reason to improve...

Posted by Brian Akins <br...@turner.com>.
Paul A Houle wrote:
>
> 
>    I don't see end users clamoring for mod_ftp,  or mod_snmpd.  What's 
> the point of writing a squid replacement unless you can actually make 
> something better?


That's why I have been posting so many cache patches.

-- 
Brian Akins
Lead Systems Engineer
CNN Internet Technologies

Re: httpd has no reason to improve...

Posted by Joe Schaefer <jo...@sunstarsys.com>.
Paul A Houle <ph...@cornell.edu> writes:

>    I don't see excellence coming from "swiss army knife" frameworks 
> that do everything,  but from systems that are developed from a whole 
> system viewpoint,  that have a good amount of codesign between layers of 
> the system -- if you build a system that lets you plug in arbitrary 
> junk,  you're going to get arbitrary performance and reliability.

I don't think the ASF infrastructure team feels that way
about qpsmtpd + mod_perl.  Without mod_perl, qpsmtpd simply
couldn't handle our load.  With mod_perl, it handles the load 
rather easily.  The glue code to hook qpsmtpd into mod_perl is 
rather small.

I consider that a remarkable real-world success of the 2.x 
architecture, warts and all.

[...]

>    Were Apache development targeting real problems that real users 
> have,  I think things would be quite different. 

My point remains this: we target power users, because those are 
the people that contribute to the project.  Mass-virtual-hosting 
ISP's rarely have anything to contribute here; yet they form the 
dominant portion of our "market share".

>
>    A big part of the problem is that the Apache project has settled 
> into a local equilibrium -- this explains the paradox of a product that 
> obviously satisfies end user's needs well (no competition has emerged) 
> but has a moribund development process.  Any real innovation in the web 
> server space will need to be disruptive,  to break things.  Apache,  as 
> we know it,  just can't do that.


As an apreq developer, I couldn't disagree more.  2.0 solved our
real-world problems that *our* users face, because it allows better
modularity.  No longer do apreq users have to use apreq consistently
throughout their codebase in order to reap its benefits.

-- 
Joe Schaefer


Re: httpd has no reason to improve...

Posted by phildietz <Ph...@cox.net>.
My 2 cents says the mod_cgi in 1.3 is better than the 2.0 series...

Custom changes to mod_cgi are much easier to perform in the 1.3 code base.

It wasnt until 2.0.54 or whatever until the stderr deadlocks were fixed...

and I'm still uncertain if mod_cgi and mod_cgid perform identical with
stderr present before or after a Content-Type: text/html header

...






Re: httpd has no reason to improve...

Posted by r....@t-online.de.

Paul A Houle wrote:


[..cut..]


> very little to offer end users.  A few people thought it would be great
> to have pluggable MPM's,  and a few other people introduced half-baked
> systems such as mod_cache and filters.  You know a tree by its fruit,

What is half-baked about filters? Without them many of the things that also
3rd party modules use would not be possible or much harder to do. You are right
one of the good thing is that you can do many things with modules in httpd
but this requires a good and flexible framework and API which can be always
improved.

mod_cache is experimental in 2.0.x and has improved much in the trunk. It is much more
any caching (reverse) proxy could do as it is more of a caching framework. If you
would have taken a look at the background of the people who submitted many of the mod_cache
patches during recent times you would have noticed that these are people which
use mod_cache at big sites and are real power users of httpd.


> and the fruit I care about is performance and reliability.  Apache
> 2.0.54 is a great server,  but the fact that it took 54 revisions to get
> there isn't a good indication about the design and development process.
> 

Version numbers are cheap and say nothing here. 2.0.35 was the first GA release,
and thus 2.0.54 is not that high as it seems.


Regards

RĂ¼diger


Re: httpd has no reason to improve...

Posted by Garrett Rooney <ro...@electricjellyfish.net>.
Paul A Houle wrote:

>    I don't see end users clamoring for mod_ftp,  or mod_snmpd.  What's 
> the point of writing a squid replacement unless you can actually make 
> something better?

You seem to be under the mistaken impression that it's the users who 
decide what the project does.  Apache projects (along with most other 
open source projects) are developer driven, if there are developers 
interested in working on something, be it mod_ftp, mod_smtpd, or 
whatever, it will get done, otherwise it won't.  If the users want 
something to happen and people aren't working on it, they can work on it 
themselves or hire someone to do it for them, but just saying "nobody 
wants this" is meaningless, since clearly the developers who are writing 
the code do want it, and that's all that really matters.

-garrett

Re: httpd has no reason to improve...

Posted by Paul A Houle <ph...@cornell.edu>.
Joe Schaefer wrote:

>Paul A Houle <ph...@cornell.edu> writes:
>
>IMO market-share doesn't relate to project activity.  The
>word I most associate with apache development is empowerment;
>cheifly to empower users to build better web stuff.  Users that
>need to tweak the software in order to make that happen become
>committers, who are further empowered to make commits, and eventually
>make decisions about the project as a whole when they join the pmc.
>
>  
>
    Market share does matter.  It's a function of a product having a niche.

    A project that's thinking about market share is thinking about end 
users.  A project that isn't thinking about end users is a project of 
people working on something for their own amusement.

>What I personally enjoy seeing on dev@httpd is "piling on", where
>one person implements something, then two or three other people
>(not always committers) jump on the bandwagon and take it in a better
>direction.  It's good to see more of that happening lately.
>
>  
>
    Yeah,  soon httpd will have a second- or third-rate implementation 
of every protocol under the sun.

    mod_ftp will underperform mainstream ftp servers so long as its 
running under prefork.  Similarly,  cacheing proxy servers will 
outperform squid.

    I don't see end users clamoring for mod_ftp,  or mod_snmpd.  What's 
the point of writing a squid replacement unless you can actually make 
something better?

>According to the statistics, most users are content with 1.3. But
>that is a very short-sighted way to measure progress, because the
>situation will change as the *nix distros move away from 1.3.  
>
    And it's got nothing to do with how content users are with 1.3,  but 
with how,  after 54 revisions,  Apache has finally produced a server 
that doesn't have serious problems running in production environments.

>Exploring 
>new protocols within httpd will almost certainly will make the internal 
>architecture better, even if none of those modules you mention are 
>distributed with httpd. IMO mod_smtpd will be a fine example of that, 
>because unlike httpd, almost all of the real action will be on the 
>input_filter side (which IMO hasn't received the same amount of polish 
>that the output_filter side has).
>
>  
>
    A server framework that can implement any protocol under the sun 
might be a nice PhD thesis,  but what does it do for end users?

    I don't see excellence coming from "swiss army knife" frameworks 
that do everything,  but from systems that are developed from a whole 
system viewpoint,  that have a good amount of codesign between layers of 
the system -- if you build a system that lets you plug in arbitrary 
junk,  you're going to get arbitrary performance and reliability.

    (I think of the old days of Java Applet programming,  where people 
who were just learning OO techniques were writing great complicated 
classes that were trying to be infinitely reusable,  and it took them a 
long time to realize that people were going to have download every byte 
of the class files they were generating...  But it's not just the old 
"bloat" argument,  but the burden of maintaining superfluous code.)

>To sum it up:
>
>better server architecture => better modules => more toys for users 
>=> more interest in the 2.x internals => more patches => more activity
>=> better server architecture ...
>  
>
    Sure,  I appreciate mod_ssl and mod_dav in Apache 2 -- but the 
reason why so many people have stuck with 1.3 for so long as that 2.0 
has had very little to offer end users.  A few people thought it would 
be great to have pluggable MPM's,  and a few other people introduced 
half-baked systems such as mod_cache and filters.  You know a tree by 
its fruit,  and the fruit I care about is performance and reliability.  
Apache 2.0.54 is a great server,  but the fact that it took 54 revisions 
to get there isn't a good indication about the design and development 
process.

    Were Apache development targeting real problems that real users 
have,  I think things would be quite different. 

    A big part of the problem is that the Apache project has settled 
into a local equilibrium -- this explains the paradox of a product that 
obviously satisfies end user's needs well (no competition has emerged) 
but has a moribund development process.  Any real innovation in the web 
server space will need to be disruptive,  to break things.  Apache,  as 
we know it,  just can't do that.

Re: httpd has no reason to improve...

Posted by Joe Schaefer <jo...@sunstarsys.com>.
Paul A Houle <ph...@cornell.edu> writes:

> Ben Collins-Sussman wrote:
>
>> I see a lot of frustration going on.  The thing is, httpd's  development
>> process is nearly identical to Subversion's process... we  stole most
>> of it from you folks!  So why all the angst in httpd-land,  but not in
>> Subversion-land?
>
>    It's really a lack of direction.

IMO market-share doesn't relate to project activity.  The
word I most associate with apache development is empowerment;
cheifly to empower users to build better web stuff.  Users that
need to tweak the software in order to make that happen become
committers, who are further empowered to make commits, and eventually
make decisions about the project as a whole when they join the pmc.

What I personally enjoy seeing on dev@httpd is "piling on", where
one person implements something, then two or three other people
(not always committers) jump on the bandwagon and take it in a better
direction.  It's good to see more of that happening lately.

>    There is very little going on in Apache to make it be a better web 
> server -- the frontiers of development are trying to make it an ftp 
> server,  an smtp server,  a ntp server,  a snpd server,  a bgp 
> server...  Efforts that 99.44% of httpd users are completely indifferent 
> to

According to the statistics, most users are content with 1.3. But
that is a very short-sighted way to measure progress, because the
situation will change as the *nix distros move away from 1.3.  Exploring 
new protocols within httpd will almost certainly will make the internal 
architecture better, even if none of those modules you mention are 
distributed with httpd. IMO mod_smtpd will be a fine example of that, 
because unlike httpd, almost all of the real action will be on the 
input_filter side (which IMO hasn't received the same amount of polish 
that the output_filter side has).

To sum it up:

better server architecture => better modules => more toys for users 
=> more interest in the 2.x internals => more patches => more activity
=> better server architecture ...


-- 
Joe Schaefer