[Catalyst] C::P::PageCache patch for reducing duplicate processing
Marcello Romani
mromani at ottotecnica.com
Fri Jun 23 18:04:07 CEST 2006
Wade.Stuart at fallon.com ha scritto:
>
>
>
>
>> Wade.Stuart at fallon.com ha scritto:
>>>
>>>
>>>
>>>> Perrin Harkins wrote:
>>>>> Toby Corkindale wrote:
>>>>>> One of the aims of my patch is to avoid the expense of having
> numerous
>>>>>> processes produce the same code simultaneously. So on the initial
>>> bunch
>>>>>> of requests, I'll still try and have the code delay all-but-one of
>>> them
>>>>>> from building the page.
>>>>> Presumably this only happens when a new cached page suddenly becomes
>>>>> available and is instantly in high demand. It's not very frequent.
> In
>>>>> my opinion, that isn't worth the danger of messing with something as
>>>>> potentially troublesome as locks that block page generation, but I
>>>>> suppose no one is forced to use the locking.
>>>> Good point.
>>>> I'll try and implement the features so they can be enabled separately.
>>> I will second the "I don't think it is worth it" case. 99% of the time
>>> caching is set at startup and the only time the case you are coding for
> is
>>> hit is on the first page load if the second request comes in for the
> same
>>> page before the page build is done from the first hit. Seems like such
> an
>>> outside case that I would be against all that extra locking an special
> case
>>> code even if it is an option.
>> Could this condition be triggered by the user hitting "Reload" or "Go"
>> many times while waiting for the page ?
>
> Yes, my case statement was general on purpose. If a user or multiple
> users make multiple requests for the page, and the requests are the first
> ones that happen after the server is started, multiple builds would happen
not only when the server is (re)started, but also when the cached page
expires
> until the first build is done and stored in cache. After the cache is
> populated there is no window of opportunity for the case to exist (given my
> no blocking method is implemented). That seems to me like very minimal
> exposure and acceptable "startup cost" for a site.
I agree.
>
> Throwing in locking and all that baggage to avoid the outside case (or all
> the logic to allow the option of the locking) just seems to go against
> KISS.
>
>
I agree on this point too.
I also think that the problem at hand could show up only on the most
requested pages of a heavy-traffic site.
Also, it would have a significant impact only on undersized hardware
IMHO, because it would cause a spike in memory and cpu utilization, that
would cease as soon as the first copy of the page is produced, as you said.
In other words, I think some benchmarks would be required to know how
much a problem this... problem really is.
My $.02 euro :)
>
>
>
> _______________________________________________
> List: Catalyst at lists.rawmode.org
> Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/
> Dev site: http://dev.catalyst.perl.org/
>
>
--
Marcello Romani
Responsabile IT
Ottotecnica s.r.l.
http://www.ottotecnica.com
More information about the Catalyst
mailing list