On Jun 26, 2013, at 8:00 PM, Strahinja Lazetic <[email protected]> wrote:
> > Hi, > > Sorry for a bit late response, I was very busy with some other stuff. I have > some doubts and comments on your suggestions: > > >Well, but you wanted to have a setEnvironment that takes extra params, so I > >guess you'll be calling at >some point, so can't you just cast the callable > >to your own and call whatever setters you want? I'm >very weary of adding > >random parameter to setEnvironment for "random" stuff :) > > I am not sure where should I cast my Callable and call the setter from, upon > a failover. I mean, can use some of the existing DEF interfaces for it or do > it deeper in the code? DistributedTask has a reference to both the task's callable, and the tasks failover policy, so that would be the starting point to link between the two. IOW, for the failover policy to be able to call setEnvironment() on the DistributedCallable, it needs access to it, which is granted via the DistributedTask. So, it'd be in the failover policy callback that you'd call setEnvironment of your own callable. Yeah, you'll need a cast. To be able to plug this, you might need a custom ExecutorService (see DefaultExecutorService) that uses a custom DistributedTaskBuilder to wire things to be able to do what I say above. > >Maybe your distributed callable could have a reference to your own failover > >policy and query it? > > In a case that my Callable is running on a remote node, to achieve this I > guess I would have to make the failover policy Serializable and hold a remote > reference to it, right? And from the design point of view I am not sure > whether it is good that the Callable is aware of its failover policy. The callable might not need to hold any reference to the failover policy, it's more the opposite. The failover policy would need to know about the callable for which it provides the policy. > I would appreciate any comment on this. > > Best regards, > Strahinja Lazetic > > From: Galder Zamarreño <[email protected]> > To: Strahinja Lazetic <[email protected]> > Cc: infinispan -Dev List <[email protected]> > Sent: Wednesday, May 29, 2013 9:59 AM > Subject: Re: [infinispan-dev] Infinispan DEF - Custom parameters upon a > failover > > > On May 28, 2013, at 11:56 AM, Strahinja Lazetic <[email protected]> wrote: > > > Hi Galder, > > > > thank you for your response. I can serialize the parameters that I passed > > in the constructor upon first start, but they remain the same upon a > > failover and recreation of the Callable, so I can not get any new info > > based on the failover. > > Well, but you wanted to have a setEnvironment that takes extra params, so I > guess you'll be calling at some point, so can't you just cast the callable to > your own and call whatever setters you want? I'm very weary of adding random > parameter to setEnvironment for "random" stuff :) > > > As I mentioned in my example (though maybe not very smart), how can I say > > to my Callable that it does not start for the first time but rather it was > > restarted. Or any other data that depends on the specific conditions of the > > failover (e.g. Callable needs to know a new ip or port that was determined > > in the FailoverPolicy based on the available targets...). > > ^ Maybe your distributed callable could have a reference to your own failover > policy and query it? > > > > > Thanks, > > Strahinja Lazetic > > > > > > From: Galder Zamarreño <[email protected]> > > To: Strahinja Lazetic <[email protected]>; infinispan -Dev List > > <[email protected]> > > Sent: Tuesday, May 28, 2013 10:58 AM > > Subject: Re: [infinispan-dev] Infinispan DEF - Custom parameters upon a > > failover > > > > Hi Strahinja, > > > > Glad to hear that you're using Infinispan in your master thesis :) > > > > I have some reservations about adding these methods. > > > > You can create a custom distributed callable, so why not pass in this info > > on construction of the callable, and make sure it's serialized so these > > parameters are available when these classes are sent to other nodes? > > > > Cheers, > > > > On May 27, 2013, at 6:51 PM, Strahinja Lazetic <[email protected]> wrote: > > > > > Hi, > > > > > > I am currently using Infinispan Distributed Execution Framework for my > > > Master thesis project and I am wondering if it is possible that a > > > DistributedCallable receives some custom parameters from the framework > > > upon a failover, besides Cache instance and Set of keys passed in the > > > setEnvironment method. As a simplified example, a DistributedCallable > > > wants to know whether it was restarted or freshly started. If this is not > > > possible, does it make sense to add a new method to the > > > DistributedTaskFailoverPolicy which will return a user supplied > > > parameters Map and then read it from the setEnvironment method in the > > > DistributedCallable? Here are the signatures of the methods I was > > > thinking off: > > > > > > In the DistributedTaskFailoverPolicy class: > > > > > > Map<Object, Object> getEnvironmentParameters() > > > > > > In the DistributedCallable class: > > > > > > setEnvironment(Cache<K, V> cache, Set<K> inputKeys, Map<Object, Object> > > > params) > > > > > > I was free to try to implement this and did not take to much time, so now > > > I am wondering if there was already a way to do something like this in > > > the Infinispan DEF. > > > > > > Thank you in advance for your comments and suggestions. > > > Strahinja Lazetic > > > _______________________________________________ > > > infinispan-dev mailing list > > > [email protected] > > > https://lists.jboss.org/mailman/listinfo/infinispan-dev > > > > > > -- > > Galder Zamarreño > > [email protected] > > twitter.com/galderz > > > > Project Lead, Escalante > > http://escalante.io > > > > Engineer, Infinispan > > http://infinispan.org > > > > > > > -- > Galder Zamarreño > [email protected] > twitter.com/galderz > > Project Lead, Escalante > http://escalante.io > > Engineer, Infinispan > http://infinispan.org > > > > > _______________________________________________ > infinispan-dev mailing list > [email protected] > https://lists.jboss.org/mailman/listinfo/infinispan-dev -- Galder Zamarreño [email protected] twitter.com/galderz Project Lead, Escalante http://escalante.io Engineer, Infinispan http://infinispan.org _______________________________________________ infinispan-dev mailing list [email protected] https://lists.jboss.org/mailman/listinfo/infinispan-dev
