Uploaded image for project: 'Comdev GSOC'
  1. Comdev GSOC
  2. GSOC-99

Create a topic-based pub/sub for IResourceChangeListener

    XMLWordPrintableJSON

Details

    Description

      Apache Bloodhound is a software development collaboration tool, including issue tracking, wiki and repository browsing (see: http://bloodhound.apache.org). Bloodhound extends Trac (http://trac.edgewall.org/) with multiple product support, advanced search functionality, ticket relations, a simpler installer and sleeker user interface. Apache Bloodhound recently graduated from the Apache Incubator as a stand-alone Apache project.

      Problem:

      Resource listeners often will watch events for a limited, well-known set of resource realms (e.g. ticket + attachment).
      The current dispatching strategy (i.e. match_resource) is mostly ​content based ( http://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern#Message_filtering ). It behaves in O(r * l) order of magnitude. This might lead to a lot of extra (unnecessary) overhead.

      Proposed solution:

      A performance improvement could be to allow listeners to register to dedicated realm channels (i.e. ​topic-based filtering [ http://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern#Message_filtering ]) , thus turning the dispatch algorithm into O(l) , at least when it is a ok to do so
      PS: We shall not loose the current content-based filtering capabilities , so in advance I advocated using a hybrid strategy .

      Skills needed:

      Bloodhound and Trac are written in Python, so a moderate dose of Python programing skills are required.

      References:

      Link to the original issue:

      https://issues.apache.org/bloodhound/ticket/485

      More GSoC-related tasks for Bloodhound:

      https://issues.apache.org/bloodhound/query?status=!closed&keywords=~gsoc

      Guidelines for contributing to Apache Bloodhound:

      https://issues.apache.org/bloodhound/wiki/BloodhoundContributing

      Attachments

        Activity

          People

            Unassigned Unassigned
            jdreimann Joachim Dreimann
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: