On Thu, Dec 5, 2013 at 5:45 PM, Yann Ylavic <[email protected]> wrote:
> On Thu, Dec 5, 2013 at 5:07 PM, Yann Ylavic <[email protected]> wrote: > >> On Thu, Dec 5, 2013 at 4:05 PM, Jim Jagielski <[email protected]> wrote: >> >>> There hardly seemed any consensus on the patch... It also >>> seems that it adds more cycles to Apache on the front to >>> reduce a race condition that can't really be removed. >>> >> >> I don't think more cycles are added by this patch. >> What is done is that ap_proxy_http_request() is split in two functions, >> the prefetch part is now in ap_proxy_http_prefetch(), and >> ap_proxy_http_prefetch()+ap_proxy_http_request() has no more cycles than >> the previous ap_proxy_http_request(). >> Unless you consider dereferencing pointer arguments a cycles-overhead >> compared to using local variables... >> > > That's not totally true, maybe you refer to this cycles : > > > + /* Preserve the header/input brigades since they may be retried. > */ > + input_bb = apr_brigade_create(p, backconn->bucket_alloc); > + header_bb = apr_brigade_create(p, backconn->bucket_alloc); > > + proxy_buckets_lifetime_transform(r, input_brigade, input_bb); > + proxy_buckets_lifetime_transform(r, header_brigade, header_bb); > > mod_proxy may need to setaside these buckets. > Oups, I meant, since input_brigade has already been setaside during prefetch, reading its buckets in proxy_buckets_lifetime_transform() shouldn't take much time (though a few more cycles).
