Uploaded image for project: 'ModeShape'
  1. ModeShape
  2. MODE-2088

Event bus should internally have a ring buffer shared used by all listeners

    XMLWordPrintable

Details

    • Enhancement
    • Resolution: Done
    • Blocker
    • 4.0.0.Alpha3
    • 3.6.0.Final
    • JCR, Query
    • None

    Description

      Our current event bus uses a separate queue for each listener. This becomes expensive with more and more listeners, and with 4.0 we are going to increase the number of internal listeners.

      Rather than use separate queues, the bus should use a single ring buffer that each listener can process independently. This will reduce the memory overhead, and we can even do things like monitor the size of the ring buffer (which will pop off events automatically as soon as the last listener has processed those events) and dynamically respond via some policy to try to slow down the production of events (such as adding short waits within the Session saves). We can use a JGroups channel to signal to all processes that such throttling needs to be done across the cluster.

      Attachments

        Issue Links

          Activity

            People

              rhauch Randall Hauch (Inactive)
              rhauch Randall Hauch (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: