> Am 28.06.2020 um 18:03 schrieb William A Rowe Jr <wr...@rowe-clan.net>:
> 
> On Sun, Jun 28, 2020 at 5:53 AM Graham Leggett <minf...@sharp.fm> wrote:
> On 27 Jun 2020, at 14:48, Luca Toscano <toscano.l...@gmail.com> wrote:
> 
> > the challenges are the same one discussed in your previous email
> > thread 
> > (https://lists.apache.org/thread.html/eb086eafbd9309eb1efedac3bf3dcc410a95d06206c97e7ade01c254%40%3Cdev.httpd.apache.org%3E).
> > I think that everybody would love to start working/helping on adding
> > HTTP/3 support but the work to be done is huge, involves invasive
> > changes to the httpd's source code and the current dev resources don't
> > have (rightfully) bandwidth to support the current codebase and plan a
> > major refactoring.
> 
> I would be careful with wide reaching statements like this.
> 
> I’ve been working on identifying and removing blockers in various parts of 
> the httpd subsystems that prevent httpd to be cleanly event driven, and most 
> of those blockers have been removed.
> 
> The underlying architecture of httpd is very strong, and would support new 
> protocols without too much trouble.
> 
> The main point is that it must be done carefully and properly, but this is 
> not a reason to not do it at all.

Apache httpd is a very strong HTTP/1.x server. And your efforts to make 
response streaming more event driven have been great. 

However it has resulted in code that is, in my impression on talks on the dev 
list regarding Yann's changes, very hard to read and improve. Not impossible, 
but not for the meek. And not because it is written badly, but because the 
state handling and interactions between buckets and pools is complex and full 
of pitfalls.
But if it's done properly, as you say, it works nicely.

For anyone thinking about bringing h3 into the server, consider your options:
1. Think of a mod_h3 as its own h3->h1 proxy. Open a h1 connection for every 
quic stream, write a h1 request, read (often event based, often not) a h1 
response from it, transform this to your h3 answer. Stay away from touching the 
server's h1 stasis field - cope with it.
2. Redesign a FOSS httpd v3.x with a new architecture, embracing a non-blocking 
processing model. Maybe under a different name.
3. Wait for someone else to do 1 or 2.

Cheers, Stefan

Reply via email to