Re: [infinispan-dev] Infinispan xsite perf test demo

2012-12-14 Thread Radoslav Husar
Thanks Bela, I enjoyed the demo!

I suggest adding some sort of visualization (maybe just a few diagrams 
within the demo) of what is actually happening with the data would help 
understanding for users who are just starting with xsite.

Rado

On 14/12/12 12:09, Bela Ban wrote:
 FYI,

 I've uploaded a 10-minute video [1] to YouTube showing how I setup and
 run a perf test for Infinispan xsite replication [2]. The test
 (including all configuration) is available at [3]. This was run with a
 snapshot of Infinispan (roughly 5.2.0.Beta6) and JGroups 3.3.0.Alpha1.
 Enjoy !

 [1] http://www.youtube.com/watch?v=owOs430vLZo
 [2] https://docs.jboss.org/author/display/ISPN/Cross+site+replication
 [3] https://github.com/belaban/IspnPerfTest

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


Re: [infinispan-dev] HotRod server and Rolling Upgrades

2012-12-14 Thread Manik Surtani
Even then, #2 would only be a temporary solution until we have #4, right?  
Would https://issues.jboss.org/browse/ISPN-2281 help in any way?

- M

On 11 Dec 2012, at 17:37, Dennis Reed der...@redhat.com wrote:

 I don't like #1.  Seems more complicated, harder to maintain  debug than the 
 others.
 
 In my opinion the best option would be #4 (eliminate the different formats), 
 but that probably can't be done in a minor release?
 
 Between 2 and 3, I'd prefer #2, handling it in the base class so it's 
 automatically inherited by any custom classes that extend it.
 Since the use case isn't limited to rolling upgrades; you could have a HotRod 
 cache with a full-time RemoteCacheStore.
 
 -Dennis
 
 On 12/11/2012 07:02 AM, Tristan Tarrant wrote:
 
 So,
 I thought we had everything ready to go for HotRod rolling upgrades:
 
 have HotRod server full of data (the source)
 configure a new HotRod server (the target) with a RemoteCacheStore 
 pointing to the source (using rawValues)
 clients switch over to the target server which on cache misses should 
 seamlessly fetch entries from the source
 issue a dump keys on the source
 fetch the dumped keys from the target
 disable the RCS on the target and switch off the source for good
 PROFIT$$$
 Unfortunately there is a teeny tiny flaw in the plan: entries in a 
 HotRod-managed cache are ByteArrayKey/CacheValue pairs and 
 unfortunately, when the target reads from the RCS they get unwrapped into 
 their byte[] equivalents.
 The solutions we have are:
 have a special marshaller placed on the RemoteCacheStore's 
 RemoteCacheManager which rewraps the entries. Unfortunately marshallers 
 can't distinguish between keys and values, so this would probably require 
 some horrid ThreadLocal trickery
 Add a new option to RemoteCacheStore so that it rewraps entries in the 
 ByteArrayKey/CacheValue format. Unfortunately   the CacheValue class 
 is part of server-core, but the dependency could be made optional, and in 
 the context of the Rolling Upgrade scenario it is a non-issue, since it will 
 be in the classpath
 Introduce a new MigrationRemoteCacheStore which does the same as the above, 
 but without changing RCS itself.
 My personal favourite is number 2, but I trust your better judgement.
 I think these are merely workarounds and we should have a better way for 
 entry wrappers (such as the cache servers) to localize the entries for 
 their own particular needs. Also I believe we need a better way to attach 
 metadata to entries in a portable way so that we don't need these value 
 wrappers.
 Tristan
 
 ___
 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

--
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] HotRod server and Rolling Upgrades

2012-12-14 Thread Tristan Tarrant
I would really like ISPN-2281 to be solved by the proper solution, i.e. 
attach any additional metadata required by the servers (or any other 
data enricher) to the InternalCacheEntry and not as part of the value 
itself. Metadata would be some kind of sparse structure whose values 
could also be inherited implicitly by Cache-level metadata (to save memory).


Let's think about data typing: a string is a string is a string, and 
not some weirdly marshalled byte array (which may be influenced by 
Marshaller, protocol value wrapper, phase of the moon, etc). Protocols 
would say this is a string (e.g. REST via Content-type: text/plain, 
InVM by just storing a java.lang.String) and the server would store it 
in an as-native-as-possible format, recording the type along with it. 
When someone retrieves it it needs to be translated to something the 
client understands. Obviously if I'm going to have a Cache of Strings, 
that metadata would be global to the cache and entries would not have 
that information.


Was this ever planned ? Canned ? Banned ?

Tristan

On 12/14/2012 01:14 PM, Manik Surtani wrote:
Even then, #2 would only be a temporary solution until we have #4, 
right?  Would https://issues.jboss.org/browse/ISPN-2281 help in any way?


- M

On 11 Dec 2012, at 17:37, Dennis Reed der...@redhat.com 
mailto:der...@redhat.com wrote:


I don't like #1. Seems more complicated, harder to maintain  debug 
than the others.


In my opinion the best option would be #4 (eliminate the different 
formats), but that probably can't be done in a minor release?


Between 2 and 3, I'd prefer #2, handling it in the base class so it's 
automatically inherited by any custom classes that extend it.
Since the use case isn't limited to rolling upgrades; you could have 
a HotRod cache with a full-time RemoteCacheStore.


-Dennis

On 12/11/2012 07:02 AM, Tristan Tarrant wrote:

So,
I thought we had everything ready to go for HotRod rolling upgrades:

  * have HotRod server full of data (the source)
  * configure a new HotRod server (the target) with a
RemoteCacheStore pointing to the source (using rawValues)
  * clients switch over to the target server which on cache misses
should seamlessly fetch entries from the source
  * issue a dump keys on the source
  * fetch the dumped keys from the target
  * disable the RCS on the target and switch off the source for good
  * PROFIT$$$

Unfortunately there is a teeny tiny flaw in the plan: entries in a 
HotRod-managed cache are ByteArrayKey/CacheValue pairs and 
unfortunately, when the target reads from the RCS they get 
unwrapped into their byte[] equivalents.


The solutions we have are:

 1. have a special marshaller placed on the RemoteCacheStore's
RemoteCacheManager which rewraps the entries. Unfortunately
marshallers can't distinguish between keys and values, so this
would probably require some horrid ThreadLocal trickery
 2. Add a new option to RemoteCacheStore so that it rewraps entries
in the ByteArrayKey/CacheValue format. Unfortunately the
CacheValue class is part of server-core, but the dependency
could be made optional, and in the context of the Rolling
Upgrade scenario it is a non-issue, since it will be in the
classpath
 3. Introduce a new MigrationRemoteCacheStore which does the same as
the above, but without changing RCS itself.

My personal favourite is number 2, but I trust your better judgement.

I think these are merely workarounds and we should have a better way 
for entry wrappers (such as the cache servers) to localize the 
entries for their own particular needs. Also I believe we need a 
better way to attach metadata to entries in a portable way so that 
we don't need these value wrappers.


Tristan


___
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 mailto:infinispan-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev


--
Manik Surtani
ma...@jboss.org mailto:ma...@jboss.org
twitter.com/maniksurtani http://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


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

[infinispan-dev] Failing test in Query module

2012-12-14 Thread Anna Manukyan
Hi all,

I've just updated my Infinispan fork, and after running the tests for query 
module, found out that the 
org.infinispan.query.distributed.MultiNodeReplicatedTest.testIndexingWorkDistribution()
 is failing constantly.

Just wanted to ask whether anyone is looking into it?

The failure message is:
org.infinispan.remoting.transport.jgroups.SuspectException: Suspected member: 
MultiNodeReplicatedTest-NodeD-48101
at 
org.infinispan.remoting.transport.AbstractTransport.parseResponseAndAddToResponseList(AbstractTransport.java:102)
at 
org.infinispan.remoting.transport.jgroups.JGroupsTransport.invokeRemotely(JGroupsTransport.java:541)
at 
org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:179)
at 
org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:201)
at 
org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:258)
at 
org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:245)
at 
org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:240)
at 
org.infinispan.remoting.rpc.RpcManagerImpl.broadcastRpcCommand(RpcManagerImpl.java:219)
at 
org.infinispan.remoting.rpc.RpcManagerImpl.broadcastRpcCommand(RpcManagerImpl.java:211)
at 
org.infinispan.interceptors.ReplicationInterceptor.handleCrudMethod(ReplicationInterceptor.java:273)
at 
org.infinispan.interceptors.ReplicationInterceptor.visitPutKeyValueCommand(ReplicationInterceptor.java:242)
at 
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77)
at 
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
at 
org.infinispan.interceptors.EntryWrappingInterceptor.invokeNextAndApplyChanges(EntryWrappingInterceptor.java:249)
at 
org.infinispan.interceptors.EntryWrappingInterceptor.visitPutKeyValueCommand(EntryWrappingInterceptor.java:162)
at 
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77)
at 
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
at 
org.infinispan.query.backend.QueryInterceptor.visitPutKeyValueCommand(QueryInterceptor.java:127)
at 
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77)
at 
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
at 
org.infinispan.interceptors.locking.NonTransactionalLockingInterceptor.visitPutKeyValueCommand(NonTransactionalLockingInterceptor.java:82)
at 
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77)
at 
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
at 
org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:132)
at 
org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:62)
at 
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77)
at 
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
at 
org.infinispan.statetransfer.StateTransferInterceptor.handleTopologyAffectedCommand(StateTransferInterceptor.java:215)
at 
org.infinispan.statetransfer.StateTransferInterceptor.handleWriteCommand(StateTransferInterceptor.java:193)
at 
org.infinispan.statetransfer.StateTransferInterceptor.visitPutKeyValueCommand(StateTransferInterceptor.java:136)
at 
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77)
at 
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
at 
org.infinispan.interceptors.CacheMgmtInterceptor.visitPutKeyValueCommand(CacheMgmtInterceptor.java:127)
at 
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77)
at 
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
at 
org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:128)
at 
org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:92)
at 
org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:62)
at 
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77)
at 
org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:343)
at 
org.infinispan.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:1146)
at org.infinispan.CacheImpl.putInternal(CacheImpl.java:744)
   

Re: [infinispan-dev] 5.2.0.Beta6 schedule

2012-12-14 Thread Mircea Markus

On 13 Dec 2012, at 18:14, Mircea Markus wrote:

 https://github.com/infinispan/infinispan/pull/1503

^^^ this is the last remaining pice, which contains a bunch of NBST critical 
fixes, so we agreed (thanks Martin) to release with this in on Dec 17 Monday 
(lunch time).

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] Infinispan xsite perf test demo

2012-12-14 Thread Sanne Grinovero
That was very very nice to see.

Assuming you also asked for feedback to improve this as a talk:

1# you stress several times that reads are going to be local, so very
fast. I think you meant local to the site ? as some ~33% of entries
will need to be fetched from peers on the same site.

2# you aren't actually running this on multiple sites are you? When
pointing out the different IP addresses you say something about
needing them to be different, but I didn't understand if you needed
them different because they are in different places, or to separate
otherwise local machines to have them appear as in different places.

3# Since get operations are always local (site), they are as you say
not meaningful for the benchmark; now since put operations are also
not meaningful as it's async .. what is the benchmark measuring?

4# There seems to be some degree of redundancy when explaining
LON/SFO/NYC setting as the local site vs the backup sites. Wouldn't it
make more sense to be able to configure all backup sites the same and
have it automatically ignore the self element as a backup site? So
your script would only need to specify what the local site is. If that
makes any sense it would even be nice to extend this to the IP
addresses being defined in the zones area, so that they are applied
both to the JGroups configuration for the local cluster and to the
bridge configuration.

5# I was initially surprised to see x-site configuration as part of a
cache configuration; I understand the reasons for options like
strategy which one might want to specify differently on each cache,
but what about take offline ? that sounds more something which
should be globally managed at the channel level - not sure if in
JGroups directly but if it's to be handled in Infinispan I would
expect to have all caches use the same policy, consistent with FD.
Also it doesn't looks like you have much of a choice in to which sites
you want to replicate, as relay is setup at the jgroups level so
affecting all caches: is relay going to be ignored by caches having no
x-site enabled? And is it going to be relayed only to one site if the
Infinispan configuration lists a single site?
Not sure if this makes any sense, I just found it contrasting with my
naive expectations of how such a configuration would look like.

thanks a lot, I hope this is proof enough that your video was pretty catchy :)
Cheers,
Sanne

On 14 December 2012 11:47, Radoslav Husar rhu...@redhat.com wrote:
 Thanks Bela, I enjoyed the demo!

 I suggest adding some sort of visualization (maybe just a few diagrams
 within the demo) of what is actually happening with the data would help
 understanding for users who are just starting with xsite.

 Rado

 On 14/12/12 12:09, Bela Ban wrote:
 FYI,

 I've uploaded a 10-minute video [1] to YouTube showing how I setup and
 run a perf test for Infinispan xsite replication [2]. The test
 (including all configuration) is available at [3]. This was run with a
 snapshot of Infinispan (roughly 5.2.0.Beta6) and JGroups 3.3.0.Alpha1.
 Enjoy !

 [1] http://www.youtube.com/watch?v=owOs430vLZo
 [2] https://docs.jboss.org/author/display/ISPN/Cross+site+replication
 [3] https://github.com/belaban/IspnPerfTest

 ___
 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] Infinispan xsite perf test demo

2012-12-14 Thread Ray Tsang
Great stuff Bela!

Btw, is xsite replication bidirectional? LON has SFO as backup, and SFO
also has LON as backup.

On Fri, Dec 14, 2012 at 8:01 PM, Sanne Grinovero sa...@infinispan.orgwrote:

 That was very very nice to see.

 Assuming you also asked for feedback to improve this as a talk:

 1# you stress several times that reads are going to be local, so very
 fast. I think you meant local to the site ? as some ~33% of entries
 will need to be fetched from peers on the same site.

 2# you aren't actually running this on multiple sites are you? When
 pointing out the different IP addresses you say something about
 needing them to be different, but I didn't understand if you needed
 them different because they are in different places, or to separate
 otherwise local machines to have them appear as in different places.

 3# Since get operations are always local (site), they are as you say
 not meaningful for the benchmark; now since put operations are also
 not meaningful as it's async .. what is the benchmark measuring?

 4# There seems to be some degree of redundancy when explaining
 LON/SFO/NYC setting as the local site vs the backup sites. Wouldn't it
 make more sense to be able to configure all backup sites the same and
 have it automatically ignore the self element as a backup site? So
 your script would only need to specify what the local site is. If that
 makes any sense it would even be nice to extend this to the IP
 addresses being defined in the zones area, so that they are applied
 both to the JGroups configuration for the local cluster and to the
 bridge configuration.

 5# I was initially surprised to see x-site configuration as part of a
 cache configuration; I understand the reasons for options like
 strategy which one might want to specify differently on each cache,
 but what about take offline ? that sounds more something which
 should be globally managed at the channel level - not sure if in
 JGroups directly but if it's to be handled in Infinispan I would
 expect to have all caches use the same policy, consistent with FD.
 Also it doesn't looks like you have much of a choice in to which sites
 you want to replicate, as relay is setup at the jgroups level so
 affecting all caches: is relay going to be ignored by caches having no
 x-site enabled? And is it going to be relayed only to one site if the
 Infinispan configuration lists a single site?
 Not sure if this makes any sense, I just found it contrasting with my
 naive expectations of how such a configuration would look like.

 thanks a lot, I hope this is proof enough that your video was pretty
 catchy :)
 Cheers,
 Sanne

 On 14 December 2012 11:47, Radoslav Husar rhu...@redhat.com wrote:
  Thanks Bela, I enjoyed the demo!
 
  I suggest adding some sort of visualization (maybe just a few diagrams
  within the demo) of what is actually happening with the data would help
  understanding for users who are just starting with xsite.
 
  Rado
 
  On 14/12/12 12:09, Bela Ban wrote:
  FYI,
 
  I've uploaded a 10-minute video [1] to YouTube showing how I setup and
  run a perf test for Infinispan xsite replication [2]. The test
  (including all configuration) is available at [3]. This was run with a
  snapshot of Infinispan (roughly 5.2.0.Beta6) and JGroups 3.3.0.Alpha1.
  Enjoy !
 
  [1] http://www.youtube.com/watch?v=owOs430vLZo
  [2] https://docs.jboss.org/author/display/ISPN/Cross+site+replication
  [3] https://github.com/belaban/IspnPerfTest
 
  ___
  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 mailing list
infinispan-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev