[infinispan-dev] Partial state transfer in Infinispan

Mircea Markus mircea.markus at jboss.com
Fri Jun 17 08:49:24 EDT 2011



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.




More information about the infinispan-dev mailing list