On 25 May 2009, at 12:37, Vladimir Blagojevic wrote:
Had a bit more discussion on this topic with Mircea and I wanted to
get your possible input. I can foresee two ways we can implement
this feature. First, in CacheDelegate for each write command we
simply invoke lock in case operation is done within transactional
context and eager locking is on. Second, Mircea suggested to
augment TxInterceptor (probably within shouldEnlist branch of
enlistWriteAndInvokeNext method) where we create LockControlCommand
and send it down the stack prior to sending intercepted write
command down the stack.
I think putting this in the TxInterceptor makes sense since it only
affects writes within a tx. Perhaps subclassing the TxInterceptor to
do this?
Another requirement is not to repeatedly send LCC command around the
cluster for write operation that already caused locks to be obtained
eagerly around the cluster. I think this requirement can be handled
within LockInterceptor#visitLockControlCommand thus hiding the
complexity away from possible invocation of LockControlCommand from
either CacheDelegate or TxInterceptor.
Hmm, good point. Maybe then it does make more sense to put it in the
LockingInterceptor.
WDYT?
Cheers,
Vladimir
On 5/25/09 9:02 AM, Vladimir Blagojevic wrote:
> Hey,
>
> I want to start working on [1]. Which operations do we want to
> include into transparent implicit eager locking? All operations
> that are WriteCommand(s)?
>
> I want to add boolean attribute useEagerLocking in transaction
> configuration element. If you object to this name, speak up!
+1 to this. Please update the config XSD, parser tests and the sample
all.xml file accordingly.
Cheers,
--
Manik Surtani
manik(a)jboss.org
Lead, Infinispan
Lead, JBoss Cache
http://www.infinispan.org
http://www.jbosscache.org