cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joerg Heinicke <joerg.heini...@gmx.de>
Subject Re: Avoiding OutOfMemory Errors by limiting data in pipeline
Date Fri, 09 May 2008 05:08:41 GMT
On 08.05.2008 11:53, Bruce Atherton wrote:

> My only comment is that I think it would be good to allow the initial 
> buffer size to be configurable. If you know the bulk of your responses 
> are greater than 32K, then performing the ramp-up from 8K every time 
> would be a waste of resources. For another web site, if most responses 
> were smaller than 6K then an 8K buffer would be perfect. Allowing 
> someone to tweak that based on their situation seems useful to me.
> 
> Not critical though, if it is hard to do. Allowing the buffer to scale 
> is the important thing.

I think this is rather hard to do. The place where we instantiate the 
BufferedOutputStreams (both java.io and o.a.c.util) is 
AbstractEnvironment.getOutputStream(int bufferSize). So in order to pass 
a second buffer size argument to the BufferedOutputStream constructor we 
need to have it available there. One option would be to add it to 
getOutputStream() - which is an interface change and not really nice.

The second option would be to pass it to the Environment instance. Since 
environments can be wrapped it needs again an interface change (but just 
adding a method, which is much better). And you have to look where 
environments are instantiated, e.g. HttpServletEnvironment in 
CocoonServlet. From what I see from a quick look only potential way to 
provide a configuration would be as servlet init parameter. That makes 
it two different places to configure these two different buffer sizes - 
not very intuitive.

Joerg

Mime
View raw message