Return-Path: X-Original-To: apmail-httpd-dev-archive@www.apache.org Delivered-To: apmail-httpd-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id E3F79188A9 for ; Fri, 4 Dec 2015 16:41:00 +0000 (UTC) Received: (qmail 95757 invoked by uid 500); 4 Dec 2015 16:40:51 -0000 Delivered-To: apmail-httpd-dev-archive@httpd.apache.org Received: (qmail 95674 invoked by uid 500); 4 Dec 2015 16:40:51 -0000 Mailing-List: contact dev-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list dev@httpd.apache.org Received: (qmail 95653 invoked by uid 99); 4 Dec 2015 16:40:51 -0000 Received: from Unknown (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 04 Dec 2015 16:40:51 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id C23F5C103F for ; Fri, 4 Dec 2015 16:40:50 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 2.999 X-Spam-Level: ** X-Spam-Status: No, score=2.999 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=3, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=disabled Authentication-Results: spamd4-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=rowe-clan-net.20150623.gappssmtp.com Received: from mx1-eu-west.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id Z__jMVSoj_ZH for ; Fri, 4 Dec 2015 16:40:44 +0000 (UTC) Received: from mail-ig0-f171.google.com (mail-ig0-f171.google.com [209.85.213.171]) by mx1-eu-west.apache.org (ASF Mail Server at mx1-eu-west.apache.org) with ESMTPS id C3EF620273 for ; Fri, 4 Dec 2015 16:40:43 +0000 (UTC) Received: by igbxm8 with SMTP id xm8so40748320igb.1 for ; Fri, 04 Dec 2015 08:40:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rowe-clan-net.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=JuKKYTkWCOICO6npDhHi2y3Ke1SpIj7+5EzewmYXzNM=; b=b04ET4XuvBqmHGBWF5vuOI7jBzTa47U0v9/W4zMbga5zzdaB5CkdDw2Dz+b26gCpRe jputz0FN80DzFjw4+hAZ7SZ2TwsmtQf4bvGzNl/8EA1LNAGzo4tgx4CskC7GJB1aT3Jw xbQhAytERPL2bjhiOQmjsqQWBjaidjVd2DMcRXXTYNAHdKdGhqVAoA7lzS3W5mBoH+l2 zkyEqv95nd1HK+ZkZ6Tda7S6+d2ABz7iT8CXCAWXcmXdIjtDRqpkCoC/DIdPCtt08Re2 YkuKgo5eJoGLaIdpah6fGqnXWi2sS6fn9/2CbIVCHRwfsG38ftZlFVcWpMpHu73jui8F rp5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=JuKKYTkWCOICO6npDhHi2y3Ke1SpIj7+5EzewmYXzNM=; b=CNednIX28SRC+gdQz4qZ99x/ddUCANhY+E7iZdtgGgZu12gWkpRBh2ljl73ec/8yfK j2Chsm8tYwtElqysrseN35otcZ9ZY74f6XaOWejyQ33qJkmNbgwSyTO4Sxy0Cpd/Flvl bGAFr4Bj9Qt+DSRy2vpE22z2/M1s+Wv9sXdkjpud8uw6yIHsxDujc7Udx2ZsJw5JDuh1 DWtg+1bk9ZAn4wVEtqgwIXlNkx09cRWyAFMV01C/H3MW+XKNniDQBoGFUh8fjf/8kJSZ wHFyuY8XzFAoOt6+E6+iyo1HZ21/p5r2N/dx5jzrBoF7/hft0r+aiNwkW5pUXgAjR7bi 1zkw== X-Gm-Message-State: ALoCoQnHdt4DLteqIK+BO5jmE7N+MDzO7+fOeil46OkmZP7aSbmQcQm7a/+lsDOfE2L+LJl9PMSPMK3FvXjrXYDoQeC8tXsJztGx1FjJlFxyTA/JtnWoCPc= MIME-Version: 1.0 X-Received: by 10.50.142.7 with SMTP id rs7mr5113645igb.35.1449247242701; Fri, 04 Dec 2015 08:40:42 -0800 (PST) Received: by 10.107.62.136 with HTTP; Fri, 4 Dec 2015 08:40:42 -0800 (PST) In-Reply-To: <20151204161722.3b753797@bifrost.webthing.com> References: <288293CD-6D82-42E0-BFC9-9DC25F969ED6@jaguNET.com> <20151203163227.64a94c9d@bifrost.webthing.com> <20151204161722.3b753797@bifrost.webthing.com> Date: Fri, 4 Dec 2015 10:40:42 -0600 Message-ID: Subject: Re: reverse proxy wishlist From: William A Rowe Jr To: httpd Content-Type: multipart/alternative; boundary=001a11c2eb5a17eb740526152bb9 --001a11c2eb5a17eb740526152bb9 Content-Type: text/plain; charset=UTF-8 On Fri, Dec 4, 2015 at 10:17 AM, Nick Kew wrote: > > > I'm looking, none of these seem like huge hacks, wondering > > which of them trigger your concern? > > Well, your talk of refactoring config led me to wonder > whether you were proposing another tilt at the whole directory > walk stuff. While that may have merit, past experience > tells us it's not going to be easy! > If I never have to refactor that code again, it will still be too soon :-/ More likely that someone enthusiastic could take the base/short unique blocks and pre-merge those to global/vhost scope, as the shortcut to a more specific scope as the first-match hit. Deeper pre-merge optimizations would be rough and all of it presupposes there are no request-specific eval blocks and no directory permitting an .htaccess could be optimized that way. So... no... much like the non-iterating fnmatch implementation, I'd prefer to let others wrap their heads around that puzzle and come up with something new and more efficient. All I was thinking of doing was extending the core concept of 'compiled in modules' to allow a module-of-modules, and build unique create/merge call tables at the end of register_hooks, instead of the slightly odd way we we presume that each module does or does not have one of each such creater/merger, skipping along the NULL refs. When we last tried to optimize this, hooks were attempted and proved to have much too much overhead. A startup-time straight array of function pointer/conf index pointer elements will be the only way to keep the logic as efficient as it is today, and then build upon that model. I don't expect we will allow the create/merge table to change after the register_hooks phase. --001a11c2eb5a17eb740526152bb9 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
On F= ri, Dec 4, 2015 at 10:17 AM, Nick Kew <nick@webthing.com> wr= ote:

> I'm looking, none of these seem like huge hacks, wondering
> which of them trigger your concern?

Well, your talk of refactoring config led me to wonder
whether you were proposing another tilt at the whole directory
walk stuff.=C2=A0 While that may have merit, past experience
tells us it's not going to be easy!

If I never have to refactor that code again, it will still be too soon :-/=

More likely that someone enthusiastic could take = the base/short
unique <Directory> blocks and pre-merge thos= e to global/vhost
scope, as the shortcut to a more specific scope= as the first-match=C2=A0
hit.=C2=A0 Deeper pre-merge optimizatio= ns would be rough and all of it
presupposes there are no request-= specific eval blocks and no
directory permitting an .htaccess cou= ld be optimized that way.

So... no... much like th= e non-iterating fnmatch implementation, I'd
prefer to let oth= ers wrap their heads around that puzzle and come
up with somethin= g new and more efficient.=C2=A0 All I was thinking of
doing was e= xtending the core concept of 'compiled in modules'
to all= ow a module-of-modules, and build unique create/merge
call tables= at the end of register_hooks, instead of the slightly
odd way we= we presume that each module does or does not have
one of each su= ch creater/merger, skipping along the NULL refs.

W= hen we last tried to optimize this, hooks were attempted and
prov= ed to have much too much overhead. A startup-time straight=C2=A0
= array of function pointer/conf index pointer elements will be
the= only way to keep the logic as efficient as it is today, and=C2=A0
then build upon that model.=C2=A0 I don't expect we will allow the
create/merge table to change after the register_hooks phase.
<= div>

--001a11c2eb5a17eb740526152bb9--