[Design of Clustering on JBoss (Clusters/JBoss)] - Re: JBAS-5647 HAPartition Sync Call with RspFilter
by bstansberry@jboss.com
No to anycasting and oob. No feature without a clearly defined use case, particularly not at this stage of the game. :-)
It needs to be an overloaded method.
Last but not least, we can't leak the RspFilter interface through the HAPartition API. HAPartition is meant to be an abstraction that hides the use of JGroups. Originally, when JGroups and AS clustering was new, hiding it to allow using something else underneath. That's unlikely to happen but I don't want to break the abstraction. More directly relevant, the ha-server-api project has no dependency on JGroups, and thus consumers of it don't either. I want to keep it that way.
I think what we need is an org.jboss.ha.framework.interfaces.ResponseFilter interface (spelled out, not RspFilter) in ha-server-api. Then in the AS cluster module org.jboss.ha.framework.server an adapter class that implements RspFilter and delegates to a constructor-injected ResponseFilter.
ResponseFilter can't expose Address either; should be ClusterNode. The adapter class needs to do the translation. :(
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4163166#4163166
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4163166
17 years, 9 months
[Design of Clustering on JBoss (Clusters/JBoss)] - JBAS-5647 HAPartition Sync Call with RspFilter
by galder.zamarreno@jboss.com
Hi,
re: http://jira.jboss.com/jira/browse/JBAS-5647
Taking in account that this JIRA requires an API change, I'd like to get it done asap. Creating the response filter for HA-JNDI and making HA-JNDI use this new API can come a bit later. At the JGroups level, the API that we need to call to pass the RspFilter is:
public RspList callRemoteMethods(Vector dests, MethodCall method_call, int mode, long timeout,
| boolean use_anycasting, boolean oob, RspFilter filter)
At the HAPartition level, we can either change callMethodOnCluster, or overload it to add, at least, RspFilter. Overloading is probably safer from a backwards compatibility perspective. This is for AS 5.0.0.GA, so I guess backwards compatibility is not a top priority. I'm easy with either.
The second thing to decide is what to do about the extra parameters that callRemoteMethods takes which are:
boolean use_anycasting, boolean oob
Do we wanna expose them to HAPartition clients? In the case of anycast, I think this would only make sense if the destination members where exposed in the HAPartition API, otherwise, to the HAPartition client, it's as if it was calling the method to all members in the cluster. Anycast only makes sense when you're calling on a subset of the cluster. In the case of oob, messages sent like this are used for non-application usages such as FD heartbeats (see http://jira.jboss.com/jira/browse/JGRP-205), so I'd leave it out again.
Thoughts?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4163149#4163149
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4163149
17 years, 9 months