[ 
https://issues.apache.org/jira/browse/SLING-2827?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Egli updated SLING-2827:
-------------------------------

    Attachment: discovery.impl.loops.timeouts.webconsole.patch

various fixes and improvements:
 * dont include timedout announcements of other cluster instances
 * support switch from isolated to cluster mode (by filtering properly)
 * improve webconsole to support ping-trigger and better indicate errors (incl 
tooltip about possible reason)
 * avoid circular dependency with webconsole
 * fix event handling filtering
 * catch rare exception cases
 * support list of whitelisted ips/hostnames (instead of comma separated)
                
> discovery.impl: a resource based implementation of the discovery.api
> --------------------------------------------------------------------
>
>                 Key: SLING-2827
>                 URL: https://issues.apache.org/jira/browse/SLING-2827
>             Project: Sling
>          Issue Type: New Feature
>          Components: Extensions
>            Reporter: Stefan Egli
>         Attachments: discovery.impl.bootstrap.patch, 
> discovery.impl.loops.timeouts.webconsole.patch, discovery.impl.tar.gz
>
>
> This ticket is about contributing a resource based implementation of the 
> discovery api (see [0]) named discovery.impl to Sling. The implementation is 
> attached as a .tar.gz - its md5 hash is d8891e5401114b2a629d3ff01044a1d6
> Short description of the discovery.impl:
> The discovery.impl is an out-of-the-box implementation of the discovery.api 
> using standard features of Sling. The discovery.api provides a view of a 
> topology consisting of a number of individual sling-instances. The instances 
> are loosely coupled, except for being part of the topology they do not 
> implicitly or necessarily share anything else. For those instances though 
> that form a cluster - ie when connected to the same repository - the api has 
> an abstraction called ClusterView.
> The discovery.impl uses two mechanisms for discovering other instances:
>  * it stores information about the local instance at a unique location in the 
> repository. Thus allowing other instances that access the same repository to 
> see and recognize each other.
>  * it connects to 'remote' instances via a plain HTTP POST, announcing the 
> instances that it can see, and getting back the instances of the counterpart
> All of the above is done regularly using a heart-beat - thus allowing to get 
> a view of the currently live instances.
> The discovery.api additionally supports leader-election within a cluster: it 
> ensures that one and only one instance is elected leader and stays leader 
> until it disappears/shuts down/dies. The discovery.impl uses repository-based 
> voting between the instances of a cluster to establish a common 'cluster 
> view'. Based on an established view, the discovery.impl is then able to 
> deterministically elect one of the instances of the view as the leader 
> (namely the one with the lowest 'id').
> Also, to support the PropertyProvider concept of the discovery.api, the 
> properties of each instance are propagated to the other instances using the 
> heartbeat as piggyback (either via the repository or via HTTP POSTs for 
> remote instances).
> To get an idea of the discovery.impl build and add and start the two bundles 
> (org.apache.sling.discovery.api and org.apache.sling.discovery.impl) to your 
> sling installation and open the browser to the provided, simplistic 'topology 
> webconsole' at
> http://localhost:4502/system/console/topology
> Please let me know if anything needs further explanation, details. Looking 
> forward to having this included in Sling!
> Cheers,
> Stefan
> --
> [0] 
> http://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/discovery/api

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to