Re: [infinispan-dev] Stale locks: stress test for the ReplaceCommand

2012-10-30 Thread Manik Surtani

On 30 Oct 2012, at 14:00, Sanne Grinovero sa...@infinispan.org wrote:

 
 Funnily enough while writing this it just failed a run even in single
 thread mode: in one iteration it was spotted that the lock wasn't
 cleaned up; this was REPL_SYNC+TX;

I find this particularly concerning, but also potentially easy to debug.  Do 
you have TRACE logs from this run?  And I presume this is on master, with the 
fix for ISPN-2381 in?

Cheers
Manik

--
Manik Surtani
ma...@jboss.org
twitter.com/maniksurtani

Platform Architect, JBoss Data Grid
http://red.ht/data-grid


___
infinispan-dev mailing list
infinispan-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev


Re: [infinispan-dev] Transaction table cleanup

2012-10-30 Thread Vladimir Blagojevic

On 12-10-29 8:49 PM, Manik Surtani wrote:


On 19 Oct 2012, at 17:40, Mircea Markus mircea.mar...@jboss.com 
mailto:mircea.mar...@jboss.com wrote:




On 19 Oct 2012, at 07:41, Vladimir Blagojevic wrote:


On 12-10-19 4:15 AM, Manik Surtani wrote:


You're right actually, the temporary cache created is 
transactional. it is built in the CreateCacheCommand and relies on 
the DummyTransactionManager, might be better to use batching 
perhaps? Or even not require for this cache to be transactional?


Yes, we should keep such internal caches as simple as possible.

Mircea/Manik, it could be batch I believe. If you recall Mircea, you 
and I talked about how to effectively move data across cluster 
deadlock free - we even agreed we should blog post about it :-) 
https://issues.jboss.org/browse/ISPN-2156


Mircea/Manik could I get some advice and code review for 
MapReduceManagerImpl#combine?
Thanks Vladimir. The only change to make 
is CreateCacheCommand.create, configure the cache to be batchable[1]. 
Then in the MapReduceManagerImpl#combine, don't use the 
TransactionManager.beggin/commit but the batch API.


Is this in?  Have we redone M/R not to rely on transactions and 
instead to use batching yet?  Vladimir?


Manik, not yet. I am done with cancellation now and I am moving onto 
this one. I've tried it over the weekend and it still deadlocks from 
time to time as described here https://issues.jboss.org/browse/ISPN-2439


This was not the case before (no changes whatsoever to m/r codebase) and 
I requested Mircea's help here. We'll convert it to batches and see to 
make sure these deadlocks do not occur.


Vladimir
___
infinispan-dev mailing list
infinispan-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev

Re: [infinispan-dev] Stale locks: stress test for the ReplaceCommand

2012-10-30 Thread Mircea Markus
So the fix for ISPN-2381 is not complete?

On 30 Oct 2012, at 14:09, Manik Surtani wrote:

 
 On 30 Oct 2012, at 14:00, Sanne Grinovero sa...@infinispan.org wrote:
 
 
 Funnily enough while writing this it just failed a run even in single
 thread mode: in one iteration it was spotted that the lock wasn't
 cleaned up; this was REPL_SYNC+TX;
 
 I find this particularly concerning, but also potentially easy to debug.  Do 
 you have TRACE logs from this run?  And I presume this is on master, with the 
 fix for ISPN-2381 in?
 
 Cheers
 Manik
 
 --
 Manik Surtani
 ma...@jboss.org
 twitter.com/maniksurtani
 
 Platform Architect, JBoss Data Grid
 http://red.ht/data-grid
 
 
 ___
 infinispan-dev mailing list
 infinispan-dev@lists.jboss.org
 https://lists.jboss.org/mailman/listinfo/infinispan-dev

Cheers,
-- 
Mircea Markus
Infinispan lead (www.infinispan.org)




___
infinispan-dev mailing list
infinispan-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev

Re: [infinispan-dev] Stale locks: stress test for the ReplaceCommand

2012-10-30 Thread Sanne Grinovero
Yes I was running on master as of 5cf3494a3ccd59eb7675c2caff4a7f0b75f244c5

It's trivial to cherry-pick the test where you want, as I didn't
change any code and it just adds the single file needed for the test.

I don't have TRACE logs enabled, no; you're very welcome to run it in
all modes you want.

On 30 October 2012 14:29, Mircea Markus mircea.mar...@jboss.com wrote:
 So the fix for ISPN-2381 is not complete?

That's unclear, there might be multiple subtle problems going on.
ISPN-2381 might be resolved, seems there are more issues of similar
nature.

This test started as a testcase for ISPN-2435 (also quite critical
imho), but now I'll track this new locking problem separately:
ISPN-2453

Cheers,
Sanne




 On 30 Oct 2012, at 14:09, Manik Surtani wrote:


 On 30 Oct 2012, at 14:00, Sanne Grinovero sa...@infinispan.org wrote:


 Funnily enough while writing this it just failed a run even in single

 thread mode: in one iteration it was spotted that the lock wasn't

 cleaned up; this was REPL_SYNC+TX;


 I find this particularly concerning, but also potentially easy to debug.  Do
 you have TRACE logs from this run?  And I presume this is on master, with
 the fix for ISPN-2381 in?

 Cheers
 Manik

 --
 Manik Surtani
 ma...@jboss.org
 twitter.com/maniksurtani

 Platform Architect, JBoss Data Grid
 http://red.ht/data-grid


 ___
 infinispan-dev mailing list
 infinispan-dev@lists.jboss.org
 https://lists.jboss.org/mailman/listinfo/infinispan-dev


 Cheers,
 --
 Mircea Markus
 Infinispan lead (www.infinispan.org)





 ___
 infinispan-dev mailing list
 infinispan-dev@lists.jboss.org
 https://lists.jboss.org/mailman/listinfo/infinispan-dev
___
infinispan-dev mailing list
infinispan-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev


Re: [infinispan-dev] iOS client lib

2012-10-30 Thread Matthias Wessendorf
any interest? Otherwise I will keep it my personal github repo

-M

On Mon, Oct 29, 2012 at 10:22 AM, Matthias Wessendorf mat...@apache.org wrote:
 HEllo,

 For a WebSocket demo, I created the following iOS lib (basically a
 port of the infinispan-ws.js file)
 https://github.com/matzew/infinispan-ios. I was wondering if there is
 interest in moving that project over to the umbrella infinispan repo
 at github.

 Thx,
 Matthias

 --
 Matthias Wessendorf

 blog: http://matthiaswessendorf.wordpress.com/
 sessions: http://www.slideshare.net/mwessendorf
 twitter: http://twitter.com/mwessendorf



-- 
Matthias Wessendorf

blog: http://matthiaswessendorf.wordpress.com/
sessions: http://www.slideshare.net/mwessendorf
twitter: http://twitter.com/mwessendorf
___
infinispan-dev mailing list
infinispan-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev


[infinispan-dev] Fixing ISPN-2384 (data loss with concurrent activation/passivation)

2012-10-30 Thread Galder ZamarreƱo
Hi all,

Re: https://issues.jboss.org/browse/ISPN-2384

I've created a unit test in 
https://github.com/galderz/infinispan/commit/01230d40df6f26720039986916c38de8be33b44b

That was the easy part :). How to fix it is no so clear. In pseudo-code, the 
race condition happens when:

1. T1. passivate entry X to cache store
2. T2. retrieve X from memory
3. T2. activation interceptor removes X from store
4. T1. evicts X from memory

The end result is that X is gone from both memory and cache store.

I've thought of several ways of fixing it, but not convinced with any:

One way to fix this is by making step 1  4 atomic, and I was hoping to 
pigyback on the segment lock, but for that to work, step 2 (data container 
get() op) would need to wait for this segment lock, which would be detrimental 
for performance.

Another way would be if activation only happened if the data was retrieved from 
the cache store (and not from memory) since removing from cache store when the 
value came from memory is rather pointless. The problem with this solution is 
that the source of the data is not currently ship around in the interceptor 
stack. IOW, the activation interceptor doesn't know if the data came from 
memory or the cache store. This could be potentially recorded in the cache 
entry stored in the context, but requires some refactoring and it could still 
be vunerable to this sequence of events:

1. T1. passivate entry X to cache store
2. T2. retrieve X from cache store
3. T2. store X in memory
4. T2. activation interceptor removes X from store
5. T1. evicts X from memory

So, to get around this sequence of events, since the the store acquires a 
segment lock, passivate and evict X could be done within the segment lock, and 
that would make sure that the evict happens before the storage in memory:

1. T1. acquire segment lock
2. T1. passivate entry X to cache store
3. T2. retrieve X from cache store
4. T1. evicts X from memory
5. T1. releases segment lock
6. T2. acquires segment lock
7. T2. store X in memory
8. T2. activation interceptor removes X from store
9. T2. releases segment lock

I think this could work, but I was wondering if you could see other potential 
solutions?

Cheers,
--
Galder ZamarreƱo
gal...@redhat.com
twitter.com/galderz

Project Lead, Escalante
http://escalante.io

Engineer, Infinispan
http://infinispan.org


___
infinispan-dev mailing list
infinispan-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev


Re: [infinispan-dev] iOS client lib

2012-10-30 Thread Emmanuel Bernard
Hey,

I'll try and channel the team as they are busy on too many fronts these days. 
The contribution looks cool. I am not sure what is the strategy going to be on 
the various clients. Hosted under the Infinispan org or left separate. My guess 
is hosting in the org makes more sense. 
Can you open a JIRA and point to your work. That will make sure things are not 
forgotten in the grand email black hole. 

Emmanuel

On 30 oct. 2012, at 18:30, Matthias Wessendorf mat...@apache.org wrote:

 any interest? Otherwise I will keep it my personal github repo
 
 -M
 
 On Mon, Oct 29, 2012 at 10:22 AM, Matthias Wessendorf mat...@apache.org 
 wrote:
 HEllo,
 
 For a WebSocket demo, I created the following iOS lib (basically a
 port of the infinispan-ws.js file)
 https://github.com/matzew/infinispan-ios. I was wondering if there is
 interest in moving that project over to the umbrella infinispan repo
 at github.
 
 Thx,
 Matthias
 
 --
 Matthias Wessendorf
 
 blog: http://matthiaswessendorf.wordpress.com/
 sessions: http://www.slideshare.net/mwessendorf
 twitter: http://twitter.com/mwessendorf
 
 
 
 -- 
 Matthias Wessendorf
 
 blog: http://matthiaswessendorf.wordpress.com/
 sessions: http://www.slideshare.net/mwessendorf
 twitter: http://twitter.com/mwessendorf
 ___
 infinispan-dev mailing list
 infinispan-dev@lists.jboss.org
 https://lists.jboss.org/mailman/listinfo/infinispan-dev

___
infinispan-dev mailing list
infinispan-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev


[infinispan-dev] Infinispan 5.2.0.Beta3 is out!

2012-10-30 Thread Mircea Markus
Hopefully the last Beta of the 5.2 series, it contains a set of critical bug 
fixes (especially around non blocking state transfer) and some performance 
improvements:  http://goo.gl/S8S0e 

Cheers,
-- 
Mircea Markus
Infinispan lead (www.infinispan.org)




___
infinispan-dev mailing list
infinispan-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev