[infinispan-dev] Fwd: ISPN-2808 - thread pool for incoming message [feedback]

Bela Ban bban at redhat.com
Thu Feb 28 05:49:34 EST 2013


On 2/28/13 11:27 AM, Pedro Ruivo wrote:
>
> On 02/28/2013 10:09 AM, Bela Ban wrote:
>> On 2/27/13 8:10 PM, Pedro Ruivo wrote:
>>>
>>> -------- Original Message --------
>>> Subject: ISPN-2808 - thread pool for incoming message [feedback]
>>> Date: Wed, 27 Feb 2013 19:06:49 +0000
>>> From: Pedro Ruivo <pedro at infinispan.org>
>>> To: infinispan-core-dev at infinispan.org <infinispan-core-dev at infinispan.org>
>>>
>>> Hi all,
>>>
>>> I'm working on ISPN-2808 and I want some feedback about it (code is here
>>> [1])
>>>
>>> I'm starting to implement this feature but I know that Asynchronous
>>> Invocation API is not totally finished in JGroups.
>> It is; I'll upload the 3.3.0.Beta1 version to Nexus in ca. 20 minutes...
>>
>>
>>> My idea in to use an executor service in CommandAwareRpcDispatcher
>>> (CARD) and when a request (command) is received, it checks if it is
>>> useful to move the command execution to another thread (in this line [2])
>>>
>>> For now, I'm thinking to move all the write commands, lock control
>>> command, prepare command and commit command to the executor service
>>
>> Can't a COMMIT or ROLLBACK be invoked directly ? Aren't they non-blocking ?
> the COMMIT can block is you are in DIST + L1 because it needs to sends a
> sync L1 invalidation command.


OK, makes sense then



>>> (Note: commit command is only moved when in DIST mode and L1 is enabled).
>>>
>>> first question: do you think it is fine to move the commands to the
>>> executor service in CARD or should I move this functionally to the
>>> InvoundHandler?
>>
>> I thought we were going to implement this as *first* interceptor in the
>> chain, e.g. to allow thread locals to still work ? By the time a command
>> reaches the CommandAwareRpcDispatcher, we're already half-way through
>> the chain.
> I'm not sure if I understood what you mean. However, I though that this
> thread pool is only for the incoming commands to avoid blocking the
> OOB/Regular threads in JGroups thread pools. So, the
> CommandAwareRpcDispatcher is the first component to know about the
> remote command and can move them to another thread before they reaching
> the interceptor chain.


OK, good

-- 
Bela Ban, JGroups lead (http://www.jgroups.org)



More information about the infinispan-dev mailing list