On 9 Jun 2011, at 15:26, Manik Surtani wrote:
> We use partial state transfer not to generate partial state per cache, but > the entire state per cache, but since we have > 1 cache sharing a given > JGroups channel, as far as JGroups in concerned this *is* partial state of a > node. I.e., the state of just 1 cache on a channel, not all the caches. > > So we actually use cacheName as the state identifier (in JGroups' > ExtendedMessageListener). > > But yes, there is no reason why we can't replace this with RPC as per > Distribution, however I think we do need a streaming solution - not just for > replication but distribution as well. As such I'd only want to re-implement > this bit once, rather than a temp RPC based solution first. So we need a > mechanism to either: Now this might sound a bit too radical but do we really need REPLICATED mode? This is not fully brewed, but if e.g. we set numOwners = Integer.MAX_INTEGER the cluster is effectively in replicated mode, so can't we just drop the REPLICATION entirely? This would reduce the code size significantly... > > (1) open a separate TCP socket for the sake of streaming state, or > (2) reuse the sockets JGroups opens. > They both have their pros and cons. > > (1) is more configuration, firewall setup, and a spiderweb of connections in > a large grid > (2) would mean multiplexing with JGroups' use of the socket. Having our own sockets might cause an administration complications. Also borrowing sockets from jgroups doesn't seems nice...I'm not a fan of either solution really: I think this should be transport's responsibility and we should enhance jgroups to offer the streaming service. _______________________________________________ infinispan-dev mailing list infinispan-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/infinispan-dev