ICEfaces-EE
  1. ICEfaces-EE
  2. IPCK-253

Garbage collection of PUSHIDs must be cluster-aware

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: EE-2.0.0.Beta1
    • Fix Version/s: EE-2.0.0
    • Component/s: Enterprise Push Server
    • Labels:
      None
    • Environment:
      ICEpush, cluster

      Description


      When an application is running against a cluster, a single browser may connect to multiple different server nodes with the blocking connection. In order to automatically garbage collect unused PUSHIDs, it is therefore necessary to periodically broadcast active PUSHIDs within the cluster.

        Activity

        Hide
        Jack Van Ooststroom added a comment -

        In order to make the garbage collection of PUSHIDs cluster-aware ICEpush has been expanded with a PushGroupListener in order for EPS to be able to be notified of when a PUSHID is being touched. As EPS is build on ICEpush, it now can add itself as a listener to the LocalPushGroupManager. Upon notification of a PUSHID being touched EPS will now broadcast a PushIDTouched message to all other EPS instances within the cluster. Each EPS instance are therefore now in sync with each other regarding touched PUSHIDs. The already present logic regarding PUSHID clean-up can still do its normal work, but now this will happen in sync on all the EPS instances. To avoid excessive messaging between the EPS instances, this logic currently relies on the build-in concatenation logic of the Message Service Client to effectively reducing the number of messages being send. However, additional improvements might prove necessary in the future to ensure scalability.

        Marking this one as FIXED.

        Show
        Jack Van Ooststroom added a comment - In order to make the garbage collection of PUSHIDs cluster-aware ICEpush has been expanded with a PushGroupListener in order for EPS to be able to be notified of when a PUSHID is being touched. As EPS is build on ICEpush, it now can add itself as a listener to the LocalPushGroupManager. Upon notification of a PUSHID being touched EPS will now broadcast a PushIDTouched message to all other EPS instances within the cluster. Each EPS instance are therefore now in sync with each other regarding touched PUSHIDs. The already present logic regarding PUSHID clean-up can still do its normal work, but now this will happen in sync on all the EPS instances. To avoid excessive messaging between the EPS instances, this logic currently relies on the build-in concatenation logic of the Message Service Client to effectively reducing the number of messages being send. However, additional improvements might prove necessary in the future to ensure scalability. Marking this one as FIXED.

          People

          • Assignee:
            Jack Van Ooststroom
            Reporter:
            Ted Goddard
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: