[infinispan-dev] Cross-site clustering

Manik Surtani manik at jboss.org
Fri Sep 21 08:29:37 EDT 2012


Looks good.  I'm definitely in favour of a simpler config.

On 21 Sep 2012, at 13:13, Bela Ban <bban at redhat.com> wrote:

> Hi Mircea,
> 
> I'm in the process of setting up the Infinispan GUI demo across 3 data 
> centers, and I ran into an issue with the Infinispan config file. Not 
> really a bug, but something that could be improved.
> 
> Currently, the Infinispan config (let's call it infinispan.xml) defines 
> the sites and their backup sites and refers to the local JGroups cluster 
> config file (jgroups.xml). The latter has a RELAY2 protocol at the top 
> of its stack which points to the relay configuration (relay2.xml), which 
> defines the sites and how they connect to each other. Finally, there's a 
> jgroups-relay2.xml file (referred to from relay2.xml) which defines the 
> global bridge, connecting all 3 sites.
> 
> OK, so that 4 config files and I don't see how to reduce them. 
> However... currently infinispan.xml is *site-specific*, ie. we need 1 
> infinispan.xml for LON, 1 for SFO and 1 for NYC.
> 
> The 3 JGroups config files (jgroups.xml, relay2.xml and 
> relay2-bridge.xml) are *not* site-specific, ie. they can be used in any 
> site, provided that we set a few system properties, such as 
> cluster-specific mcast address and port, and site name (relay2.xml).
> 
> I believe cross-site clustering would benefit from making infinispan.xml 
> symmetric as well, that is, we could use it in any site.
> 
> To do this, I suggest the following:
> 
> #1 Sites config:
>  <sites local="LON">
>             <site name="SFO"/>
>             <site name="NYC"/>
>             <site name="LON"/>
>         </sites>
> 
> 
> Nothing needs to be changed here, except to parameterize local: <sites 
> local="${SITE:LON}"...>. A node in a given site can then be started 
> using -DSITE=LON. This could also be used for relay2.xml.
> 
> - Question-1: why do we need to list the sites above ? We're not 
> defining any config for those sites, so I don't see why this is needed...
> 
> #2 Backups config:
>  <namedCache name="users">
>         <sites>
>             <backups>
>                 <backup site="NYC" backupFailurePolicy="WARN" 
> strategy="SYNC" timeout="12000"/>
>                 <backup site="SFO" backupFailurePolicy="IGNORE" 
> strategy="ASYNC"/>
>             </backups>
>         </sites>
>     </namedCache>
> 
> 
> This is *asymmetric*. IMO, a better config would be:
> 
> <global>
>   <sites>
>        <localSite="${site:LON}" backupSites="${backup-sites:SFO,NYC}" />
>        <backups>
>                 <backup site="NYC" backupFailurePolicy="WARN" 
> strategy="SYNC" timeout="12000"/>
>                 <backup site="SFO" backupFailurePolicy="IGNORE" 
> strategy="ASYNC"/>
>                 <backup site="LON" backupFailurePolicy="IGNORE" 
> strategy="ASYNC"/>
>        </backups>
>    </sites>
> </global>
> 
> 
> Here, we define global backup strategies and the local site. Both of 
> them can be parameterized, e.g. we start up nodes in
> - LON: -Dsite=LON -DbackupSites="SFO,NYC"
> - SFO: -Dsite=SFO -DbackupSites=NYC
> - NYC: -Dsite=NYC -DbackupSites=     // no backups
> 
> 
> This would allow us to have only 1 infinispan.xml, regardless of the 
> site in which it is used.
> 
> Of course, since backup strageties are globally defined, if people 
> wanted different backup strategies per site (or per named cache), they 
> could still copy infinispan.xml and modify it...
> 
> WDYT ?
> 
> 
> 
> 
> -- 
> Bela Ban, JGroups lead (http://www.jgroups.org)
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev

--
Manik Surtani
manik at jboss.org
twitter.com/maniksurtani

Platform Architect, JBoss Data Grid
http://red.ht/data-grid

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/infinispan-dev/attachments/20120921/fdcf37d5/attachment-0001.html 


More information about the infinispan-dev mailing list