Re: [infinispan-dev] KeyAffinityService

2013-06-14 Thread cotton-ben
Thanks for this reply, Mircea. Very interesting approach. By dispatching a distributed executor back to the node (node 0) that produced the pinned key affinity for the object's natural key, we could indeed do an iterative search (from node 2) to find the original 'myObject' in the pinned cache

Re: [infinispan-dev] KeyAffinityService

2013-06-14 Thread Dan Berindei
Ben, I'm pretty sure it's not possible to define getKeyForAddress as returning the same type as its input key. Let's say f1(address)(x) = getKeyForAddress(address, x) f1(address) has to be injective for each address. So if the size of the key domain is size(K) and the number of addresses is N,

Re: [infinispan-dev] KeyAffinityService

2013-06-14 Thread cotton-ben
/It's probably possible to define something like this instead: PinnedKeyK getKeyForAddress(address, key) / This is fine. Do it this way. /Even so, keeping the result key pinned to the same address after a rebalance would be tricky - probably requiring some changes to the ConsistentHash

Re: [infinispan-dev] KeyAffinityService

2013-06-14 Thread Mircea Markus
Sent from my iPhone On 14 Jun 2013, at 13:43, cotton-ben ben.cot...@alumni.rutgers.edu wrote: Thanks for this reply, Mircea. Very interesting approach. By dispatching a distributed executor back to the node (node 0) that produced the pinned key affinity for the object's natural key, we

Re: [infinispan-dev] KeyAffinityService

2013-06-14 Thread cotton-ben
/ Another thing you can do is have a replicated Cache holding the mapping between the actual keys and the affinity keys./ Yes, no doubt about it. This will work. But, it technically requires the additional participation of a second full-blown Cache. It will work, but it is not gorgeous.

Re: [infinispan-dev] KeyAffinityService

2013-06-14 Thread Mircea Markus
Sent from my iPhone On 14 Jun 2013, at 19:14, cotton-ben ben.cot...@alumni.rutgers.edu wrote: / Another thing you can do is have a replicated Cache holding the mapping between the actual keys and the affinity keys./ Yes, no doubt about it. This will work. But, it technically

Re: [infinispan-dev] KeyAffinityService

2013-06-14 Thread cotton-ben
/ Can you leave with this limitations? / Yes. -- View this message in context: http://infinispan-developer-list.980875.n3.nabble.com/KeyAffinityService-nice-2-recommendations-tp4027152p4027407.html Sent from the Infinispan Developer List mailing list archive at Nabble.com.

Re: [infinispan-dev] KeyAffinityService

2013-06-14 Thread Mircea Markus
Sent from my iPhone On 14 Jun 2013, at 19:39, cotton-ben ben.cot...@alumni.rutgers.edu wrote: / Can you leave with this limitations? / Yes. Just to reiterate, your *never* expects a node to crash? -- View this message in context:

Re: [infinispan-dev] KeyAffinityService

2013-06-14 Thread cotton-ben
/ Just to reiterate, your *never* expects a node to crash? / Easy now, Mircea! All of us in the distributed computing community know that we live in a world of necessary compromises (i.e. Brewer's CAP theorem, etc.) re: limits of service guarantees and capabilities. Now, of course, I do

Re: [infinispan-dev] KeyAffinityService

2013-06-14 Thread Dan Berindei
On Fri, Jun 14, 2013 at 5:46 PM, cotton-ben ben.cot...@alumni.rutgers.eduwrote: /It's probably possible to define something like this instead: PinnedKeyK getKeyForAddress(address, key) / This is fine. Do it this way. /Even so, keeping the result key pinned to the same address after a

Re: [infinispan-dev] KeyAffinityService

2013-06-14 Thread cotton-ben
To be honest, Dan, your last post leaves me slightly concerned. / Just to be clear, KAS doesn't really allow you to pin a key to a certain node. It only gives you a key that maps to the given node the moment you called KAS.getKeyForAddress(Address) - by the time you call cache.put() with

Re: [infinispan-dev] KeyAffinityService

2013-06-14 Thread Mircea Markus
Sent from my iPhone On 14 Jun 2013, at 20:08, Dan Berindei dan.berin...@gmail.com wrote: Just to be clear, KAS doesn't really allow you to pin a key to a certain node. It only gives you a key that maps to the given node the moment you called KAS.getKeyForAddress(Address) - by the time you

Re: [infinispan-dev] KeyAffinityService

2013-06-14 Thread cotton-ben
so, in the event that no topology change takes place, may I otherwise consider this key2node association /reliable/? Mircea Markus-2 wrote Sent from my iPhone On 14 Jun 2013, at 20:08, Dan Berindei lt; dan.berindei@ gt; wrote: Just to be clear, KAS doesn't really allow you to pin a

Re: [infinispan-dev] KeyAffinityService

2013-06-14 Thread Mircea Markus
Sent from my iPhone On 14 Jun 2013, at 20:54, cotton-ben ben.cot...@alumni.rutgers.edu wrote: so, in the event that no topology change takes place, may I otherwise consider this key2node association /reliable/? Yes ___ infinispan-dev mailing list

Re: [infinispan-dev] KeyAffinityService

2013-06-14 Thread Mircea Markus
Sent from my iPhone On 14 Jun 2013, at 20:02, cotton-ben ben.cot...@alumni.rutgers.edu wrote: / Just to reiterate, your *never* expects a node to crash? / Easy now, Mircea! All of us in the distributed computing community know I'm just trying to help Ben. that we live in a world

Re: [infinispan-dev] KeyAffinityService

2013-06-14 Thread cotton-ben
I'm just trying to help Ben. Absolutely you are. And you are succeeding. Greatly appreciated, thank you. -- View this message in context: http://infinispan-developer-list.980875.n3.nabble.com/KeyAffinityService-nice-2-recommendations-tp4027152p4027416.html Sent from the Infinispan

Re: [infinispan-dev] KeyAffinityService

2013-06-13 Thread cotton-ben
Want to point out that without this signature added to the API *K getKeyForAddress(Address address, K otherKey); * /*compute address specific version of otherKey*/ we are finding the KeyAffinityService unusable. It is impossible for a node, that is not the same as the node that produced

Re: [infinispan-dev] KeyAffinityService

2013-06-13 Thread Mircea Markus
On 13 Jun 2013, at 17:11, cotton-ben ben.cot...@alumni.rutgers.edu wrote: Want to point out that without this signature added to the API *K getKeyForAddress(Address address, K otherKey); * /*compute address specific version of otherKey*/ I might have misunderstood something, but do

Re: [infinispan-dev] KeyAffinityService

2013-06-13 Thread cotton-ben
We need a way for a foreign node to be able to come up with the same affinityKey produced earlier by a local node. Thanks for the response, Mircea. Let me elaborate. E.g. consider the infinispan quick start that is made up of AbstractNode.java, Node0.java, Node1.java, Node2.java Let's say

Re: [infinispan-dev] KeyAffinityService

2013-06-13 Thread Mircea Markus
Sent from my iPhone On 13 Jun 2013, at 17:45, cotton-ben ben.cot...@alumni.rutgers.edu wrote: We need a way for a foreign node to be able to come up with the same affinityKey produced earlier by a local node. Thanks for the response, Mircea. Let me elaborate. E.g. consider the

[infinispan-dev] KeyAffinityService (nice) - 2 recommendations

2013-05-16 Thread cotton-ben
Hi, First, nice work on org.infinispan.affinity.KeyAffinityService ... May I make 2 recommendations. 1. Add to the interface an overload = *K getKeyForAddress(Address address, K otherKey);/*compute address specific version of otherKey*/* 2. Provide documentation that

Re: [infinispan-dev] KeyAffinityService (nice) - 2 recommendations

2013-05-16 Thread Mircea Markus
On 16 May 2013, at 19:12, cotton-ben ben.cot...@alumni.rutgers.edu wrote: Hi, First, nice work on org.infinispan.affinity.KeyAffinityService ... May I make 2 recommendations. Thanks for the feedback! 1. Add to the interface an overload = *K getKeyForAddress(Address

Re: [infinispan-dev] KeyAffinityService (nice) - 2 recommendations

2013-05-16 Thread Mircea Markus
On 16 May 2013, at 19:12, cotton-ben ben.cot...@alumni.rutgers.edu wrote: 2. Provide documentation that *explicitly* motivates users to understand/exercise the differences (and compatibilities) of the KeyAffinityService API and the Grouping API. Now, that I have some competency using

Re: [infinispan-dev] KeyAffinityService (nice) - 2 recommendations

2013-05-16 Thread cotton-ben
Done. see https://issues.jboss.org/browse/ISPN-3112 -- View this message in context: http://infinispan-developer-list.980875.n3.nabble.com/KeyAffinityService-nice-2-recommendations-tp4027152p4027155.html Sent from the Infinispan Developer List mailing list archive at Nabble.com.

Re: [infinispan-dev] KeyAffinityService (nice) - 2 recommendations

2013-05-16 Thread cotton-ben
Added to the FAQ: https://docs.jboss.org/author/display/ISPN/Grouping+API+vs+Key+Affinity+Service Excellent. Thanks. -- View this message in context: http://infinispan-developer-list.980875.n3.nabble.com/KeyAffinityService-nice-2-recommendations-tp4027152p4027156.html Sent from the

Re: [infinispan-dev] KeyAffinityService (nice) - 2 recommendations

2013-05-16 Thread Mircea Markus
thank you. On 16 May 2013, at 20:00, cotton-ben ben.cot...@alumni.rutgers.edu wrote: Done. see https://issues.jboss.org/browse/ISPN-3112 -- View this message in context:

[infinispan-dev] KeyAffinityService, GroupingConsistentHash et. al. Infinispan tactical APIs

2013-05-08 Thread cotton-ben
Hi Infinispan-DEV team, Could anyone provide pointers to Infinispan API sample code that could assist us w/ our ambition to start building the attached distributed grid use-case? Any wiki how-to (or full code samples) would be especially helpful. Specifically, how to use KeyAffinityService,

Re: [infinispan-dev] KeyAffinityService, GroupingConsistentHash et. al. Infinispan tactical APIs

2013-05-08 Thread Mircea Markus
On 8 May 2013, at 18:11, cotton-ben wrote: Hi Infinispan-DEV team, Could anyone provide pointers to Infinispan API sample code that could assist us w/ our ambition to start building the attached distributed grid use-case? Any wiki how-to (or full code samples) would be especially