You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Ken Giusti (Jira)" <ji...@apache.org> on 2020/06/02 14:53:00 UTC

[jira] [Resolved] (DISPATCH-1642) Avoid extra search when adding address configs to parse tree

     [ https://issues.apache.org/jira/browse/DISPATCH-1642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ken Giusti resolved DISPATCH-1642.
----------------------------------
    Fix Version/s:     (was: Backlog)
                   1.13.0
       Resolution: Fixed

> Avoid extra search when adding address configs to parse tree
> ------------------------------------------------------------
>
>                 Key: DISPATCH-1642
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-1642
>             Project: Qpid Dispatch
>          Issue Type: Improvement
>          Components: Router Node
>    Affects Versions: 1.12.0
>            Reporter: Ken Giusti
>            Assignee: Ken Giusti
>            Priority: Minor
>             Fix For: 1.13.0
>
>
> Configured address patterns are stored in a parse tree.  When new addresses are created the code first searches the parse tree to see if the address already exists in order to avoid adding duplicate addresses.   If there is no duplicate the code then calls the parse tree insertion function.
> This is sub-optimal.  The likely case is that the address does not exist in the parse tree.  This means the first search (for duplication) will result in searching the entire tree, which devolves to O(n).
> Currently the parse tree insertion code resolves duplication by replacing the existing node's data with the new data.  If instead we treated this as a duplication error and avoided the insertion we could avoid the extra lookup and just let the insertion code do the duplication check for us (single pass).
> This lookup then insert pattern is used in agent_config_address.c and route_control.c.  Search for calls to qd_parse_tree_get_pattern().
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org