#485: Topic-based pub/sub for IResourceChangeListener
-------------------------+-------------------------------------------------
  Reporter:  olemis      |      Owner:  nobody
      Type:              |     Status:  new
  enhancement            |  Milestone:
  Priority:  major       |    Version:
 Component:  trac core   |   Keywords:  gsoc IResourceChangeListener
Resolution:              |  performance
-------------------------+-------------------------------------------------
Changes (by olemis):

 * owner:   => nobody
 * keywords:   => gsoc IResourceChangeListener performance
 * component:   => trac core


Old description:

> 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
> [http://en.wikipedia.org/wiki/Publish–subscribe_pattern#Message_filtering
> content based] . It behaves in `O(r * l)` order of magnitude . This might
> lead to a lot of extra (unnecessary) overhead .
>
> A performance improvement could be to allow listeners to register to
> dedicated realm channels (i.e.
> [http://en.wikipedia.org/wiki/Publish–subscribe_pattern#Message_filtering
> topic-based filtering]) , thus turning the dispatch algorithm into `O(l)`
> .
>
> PS: We shall not loose the current content-based filtering capabilities ,
> so in advance I advocated using a hybrid strategy .

New description:

 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
 [http://en.wikipedia.org/wiki/Publish–subscribe_pattern#Message_filtering
 content based] . It behaves in `O(r * l)` order of magnitude . This might
 lead to a lot of extra (unnecessary) overhead .

 A performance improvement could be to allow listeners to register to
 dedicated realm channels (i.e.
 [http://en.wikipedia.org/wiki/Publish–subscribe_pattern#Message_filtering
 topic-based 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 .

--

-- 
Ticket URL: <https://issues.apache.org/bloodhound/ticket/485#comment:1>
Apache Bloodhound <https://issues.apache.org/bloodhound/>
The Apache Bloodhound (incubating) issue tracker

Reply via email to