> -----Original Message-----
> From: Stas Bekman [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, September 25, 2001 9:10 AM
> To: Geoffrey Young
> Cc: '[EMAIL PROTECTED] '
> Subject: Re: :Table::get implementation?
> 
> 
> Geoffrey Young wrote:
> 
> >>There is another performance issue with setvars I'm thinking about. 
> >>Currently when you perform $r->dir_config I have to merge the 
> >>directory 
> >>and server configs and give you the new table. This may be very 
> >>expensive. Now we could avoid this by doing a deeper merge at the 
> >>configuration stage, but since we allow 
> >>$s->dir_config->set|add the $s'
> >>vars can change and our merged version be wrong. So it sucks, 
> >>performance wise of course, since we cannot pre-merge. I 
> >>guess we should 
> >>put a fat warning -- DO NOT Call $s->dir_config without arguments, 
> >>unless you don't mind performance implications.
> >>
> > 
> > these issues should be handled separately, no?  PerlSetVar 
> is just another
> > config directive, so by the time you get to the 
> PerlHeaderParser you ought
> > to have a fully populated table (done via normal directory merging).
> > whether elements are added to removed at runtime shouldn't 
> require merging,
> > since you are just manipulating an existing and populated table.
> 
> 
> that's how it should be but I don't see this happening. The thing you 
> are talking about is supposed to happen in 
> modperl_config.c:modperl_config_dir_merge right? But this 
> function has 
> no access to modperl_config_srv_t, so it doesn't do the merge 
> with any 
> settings done on the server level.

well, speaking from my limited knowledge of how 1.3 works, if you made the
directives per-dir directives then they don't need to be handled at the
per-server level - Apache merges per-dir directives that appear on a
per-server level into a null config that is handled by the per-dir merge so
everything works out.

I haven't had the tuits to investigate the 2.0 architecture, so maybe it's
different.  maybe Doug has some insight here as well...

> 
> Still let's say that this works, run-time can always call 
> $s->dir_config->set(foo => $bar), how a call to 
> $r->dir_config can know 
> about this change in the same request?

Am I missing something in the new API?  $s->dir_config?  I don't see the
need for dir_config on a per-server level.  that's not how it is in 1.x and
it works just fine...

> 
> 
> > sorry if I'm missing some design considerations already 
> discussed - I'm
> > still trying to catch up with my email after a vacation...
> 
> 
> Nope, we didn't discuss this before.
> 
> Hope you'd a nice vacation :)

sort of...

--Geoff

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to