Hi,
>
> Thanks for the information, i understand that making the class
> stateless would not generate multi-threading issues, but in my
> situation, speed is of the essence and I was concerned that by
> having many procesor threads that use the same Adapter instance
> would produce a sort of bottleneck as one instance handles all the
> request processing.
>
> Am I correct in saying this?
If Adapter doesn't have any state associated - it's safe to reuse it
simult. from different threads and there should not be any bottleneck.
I would even say, that reusing single Adapter instance will perform
better, than constructing Adapter for each connection.
If you have any questions - please ask :)
Thanks.
WBR,
Alexey.
>
>
> I am pretty new to the whole threading, sockets, NIO, side of
> things, and want to ensure that I undersand things correctly.
>
> I really appreciate the advice
>
> Mark
>
> On Fri, Jul 18, 2008 at 1:13 AM, Jeanfrancois Arcand <Jeanfrancois.Arcand_at_sun.com
> > wrote:
> Salut,
>
>
> Oleksiy Stashok wrote:
> Hello Mark,
>
> I think main decision was to make Adapter stateless, so it will not
> have any internal state, so there should not be multi-threading
> issues.
>
> Indeed. We already creates DefaultProcessorTask/Request/Response
> which are statefull, the Adapter doesn't necessary needs to be
> statefull as well....That makes a big difference under load.
>
>
>
> I was just wondering if someone could give me some incite behind the
> decision to, when the selector thread calls
> configureProcessorTask(DefaultProcessorTask task) it assigns the
> task.setAdapter(adapter); method?
>
> This would mean that each DefaultProcessorTask has the same adapter
> assigned to process requests... wouldn't this create multi-threading
> issues when many different DefaultProcessorTask's try to call their
> adapters service method?
>
> I may have the wrong impression here but wouldnt it be better if in
> the configureProcessorTask method in the SelectorThread class sets a
> new instance of an adapter onto the DefaultProcessorTask?
>
> task.setAdapter( new SampleAdapter() );
>
> instead of task.setAdapter(adapter);
>
> Ofcourse, if you wanted to copy the object instead of a new
> instance, then you would need to implement Cloneable on the adapter...
> IMHO, clones it's always tricky... and place with possible issues.
> Can you pls. describe your scenario? Why you may need to have
> stateful Adapter?
>
> Right? Or better, if you have time, maybe you can send us a patch
> that support stateless and statefull Adapter :-) :-) :-)
>
> Thanks!
>
> -- Jesnfrancois
>
>
>
>
>
> Thanks.
>
> WBR,
> Alexey.
>
>
>
> Cheers,
> Mark
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe_at_grizzly.dev.java.net
> For additional commands, e-mail: dev-help_at_grizzly.dev.java.net
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe_at_grizzly.dev.java.net
> For additional commands, e-mail: dev-help_at_grizzly.dev.java.net
>
>