Uploaded image for project: 'Sling'
  1. Sling
  2. SLING-3993

Avoiding loops when syncing via coordinate agents

    XMLWordPrintableJSON

Details

    Description

      In the case of a 'coordinate agent', sitting on 'author' instance, responsible for synchronizing 2+ 'publish' instances the simplest setup would consist of a 'queueing agent' (local exporter, no importer) sitting on each of the 'publish' instances with a trigger responsible of signaling changes of resources under a certain path so that when, for example, a resource 'bar' gets created under '/foo' the trigger will cause the creation of a package for '/foo/bar' which will be queued locally, the 'coordinate agent' will remotely fetch such a package from the queue of e.g. 'pub1' instance and remotely import it into 'pub2' instance.
      If both 'pub1' and 'pub2' have the same trigger this may result into a looping scenario when instances keep exchanging packages for the same changed content.

      Possible solutions to this can be, conceptually, based on:
      1. identifying the source of the event that generates the replication so that events on changed resources generated by the package builder (upon package installation) are filtered and do not trigger a replication request.
      2. filtering packages before they get transported if a same/similar package has been already sent by the target instance, keeping something a cache-like structure for the communication (in the coordinate agent).

      Attachments

        Activity

          People

            teofili Tommaso Teofili
            teofili Tommaso Teofili
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: