Uploaded image for project: 'Queued Asynchronous Activation over RabbitMQ'
  1. Queued Asynchronous Activation over RabbitMQ
  2. QAARQ-9

Ensure SyncState is working correctly

    XMLWordPrintable

Details

    • Task
    • Resolution: Fixed
    • Neutral
    • None
    • None
    • None
    • None

    Description

      SyncState is a mechanism implemented to guarantee synchronicity of public instances.
      It is basically a counter that is incremented on each activation message that is sent, the counter is sent in the message's header. When the public gets the message, he increments his own activation counter. Which means that two publics who have different SyncStates are out of sync, untill they have again the same number. The load balancer is calling the rest service of the public nodes and knows by this way which public node is most up to date, which one is out of sync, for instance if:

      • Rest service is not responding: --> Public Node down --> take it out of teh pool
      • Rest service's sync state is 0: --> Public Node is up but completely out of sync.
      • average(syncstates)-synctate(pubnode)>=x : --> Public node is working but too much under load, take public node temporary out of the pool till average(syncstates)-synctate(pubnode)<x

      The loadbalancer also knows when the public instances are getting activated.

      SyncStates are persisted to JCR.

      Ensure this mechanism is working correctly, i.e there are no exceptions or corner cases that are introduced when:

      • the author restarts
      • one of the public nodes restart
      • when the activation module is installed as a new module on the instance
      • when the activation module is installed as an upgrade of the existing module on the instance.

      Checklists

        Acceptance criteria

        Attachments

          Activity

            People

              thanh.pham Thanh Pham
              kdewitte Karel de Witte
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Checklists

                  Task DoR

                  Time Tracking

                    Estimated:
                    Original Estimate - 3d
                    3d
                    Remaining:
                    Remaining Estimate - 0d
                    0d
                    Logged:
                    Time Spent - 1.5d Time Not Required
                    1.5d