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

Stefan Egli resolved SLING-5251.
--------------------------------
    Resolution: Fixed

rev 1713675:
bq. adding debug infos to the topology webconsole re the SyncTokenService 
History

thus considering this done.

> discovery.impl should use SyncTokenService (configurable)
> ---------------------------------------------------------
>
>                 Key: SLING-5251
>                 URL: https://issues.apache.org/jira/browse/SLING-5251
>             Project: Sling
>          Issue Type: Improvement
>          Components: Extensions
>    Affects Versions: Discovery Impl 1.2.0
>            Reporter: Stefan Egli
>            Assignee: Stefan Egli
>             Fix For: Discovery Impl 1.2.2
>
>
> The SyncTokenService introduced with discovery.commons allows discovery 
> implementors to add additional QoS to a TOPOLOGY_CHANGED event by waiting for 
> each instance to store a 'sync token' (eg cluster *view* id, not cluster id) 
> into the repository. The algorithm in detail:
> * upon detecting a topology change happening, each instance sends out 
> TOPOLOGY_CHANGING to its listeners
> * *after* that is done, it stores a syncToken to a well-known place into the 
> repository
> * thus when a particular instance sees all syncTokens by the peers, it knows 
> that all listeners have now gotten the TOPOLOGY_CHANGING event - and that 
> provides a strong synchronization guarantee.
> This mechanism is already in-use by default in discovery.oak (which 
> additionally also ensures no instance has any backlog with the repository - 
> which it can do as it requires oak and oak provides this info in the 
> discovery-lite descriptor).
> Now for discovery.impl such a 'strong cluster synchronization' guarantee is 
> not that relevant as it might look. Since discovery.impl already uses the 
> repository (and thus its delays) for voting and creating the establishedView. 
> But at the moment there is no guarantee that the voting happens *after* the 
> TOPOLOGY_CHANGING was processed by all listeners. It's just rather unlikely 
> that sending the TOPOLOGY_CHANGING (which is all local) is slower than the 
> voting (which is going through repository delays).
> Nevertheless, using the SyncTokenService would provide mentioned strong 
> cluster synchronization guarantee and _discovery.impl could just as well make 
> use of it_.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to