Qpid
  1. Qpid
  2. QPID-5045

Dispatch - Refactor the router data structures to allow both message-based and link-based routing that supports full link protocol

    Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Qpid Dispatch
    • Labels:
      None

      Description

      Dispatch router supports two flavors of routing:

      • Message Routing is performed using the "to" field and uses linked delivery records to track disposition and settlement.
      • Link Routing is performed using the target/source of an attach frame and creates "virtual circuits" of linked-links to carry messages across a network.

      This Jira tracks changes to the router data structures to support these routing features.

        Activity

        Hide
        ASF subversion and git services added a comment -

        Commit 1511021 from Ted Ross in branch 'qpid/trunk'
        [ https://svn.apache.org/r1511021 ]

        QPID-5045 - Refactored the router data structures to support message and link routing.
        QPID-4997 - Fixed the thread safety problem.

        • Wrapped "pn_delivery" in the container to allow for explicit linkage of delivery pairs.
        • Removed the linkage between "message" and "delivery". Messages can now be discarded as
          soon as the last copy is delivered because their status will be tracked in the dx_delivery
          object.
        • Removed tx_handler from the set of callbacks in the container. There is no need for this
          notification (sendable delivery) because Dispatch does not create outbound deliveries
          until it is ready to send them (i.e. deliveries are created and advanced in one synchronous
          operation).
        • Replaced the out_fifo of messages per outbound-link with a pair of fifos (one for messages
          and one for state changes) per link. Note that even inbound-links need to send state
          changes outbound. This change addresses QPID-4997.
        Show
        ASF subversion and git services added a comment - Commit 1511021 from Ted Ross in branch 'qpid/trunk' [ https://svn.apache.org/r1511021 ] QPID-5045 - Refactored the router data structures to support message and link routing. QPID-4997 - Fixed the thread safety problem. Wrapped "pn_delivery" in the container to allow for explicit linkage of delivery pairs. Removed the linkage between "message" and "delivery". Messages can now be discarded as soon as the last copy is delivered because their status will be tracked in the dx_delivery object. Removed tx_handler from the set of callbacks in the container. There is no need for this notification (sendable delivery) because Dispatch does not create outbound deliveries until it is ready to send them (i.e. deliveries are created and advanced in one synchronous operation). Replaced the out_fifo of messages per outbound-link with a pair of fifos (one for messages and one for state changes) per link. Note that even inbound-links need to send state changes outbound. This change addresses QPID-4997 .
        Hide
        ASF subversion and git services added a comment -

        Commit 1511737 from Ted Ross in branch 'qpid/trunk'
        [ https://svn.apache.org/r1511737 ]

        QPID-5045 - Added system tests for the routing scenarios, fixed discovered defects.

        Show
        ASF subversion and git services added a comment - Commit 1511737 from Ted Ross in branch 'qpid/trunk' [ https://svn.apache.org/r1511737 ] QPID-5045 - Added system tests for the routing scenarios, fixed discovered defects.
        Hide
        ASF subversion and git services added a comment -

        Commit 1511797 from Ted Ross in branch 'qpid/trunk'
        [ https://svn.apache.org/r1511797 ]

        QPID-5045 - Added tests for message REJECT and for the three-ack delivery pattern.

        Show
        ASF subversion and git services added a comment - Commit 1511797 from Ted Ross in branch 'qpid/trunk' [ https://svn.apache.org/r1511797 ] QPID-5045 - Added tests for message REJECT and for the three-ack delivery pattern.
        Hide
        ASF subversion and git services added a comment -

        Commit 1526694 from Ted Ross in branch 'qpid/trunk'
        [ https://svn.apache.org/r1526694 ]

        QPID-5173
        QPID-5045
        QPID-5181

        • Major refactor of the routing data structure in preparation for multi-router operation.
        • Fixed the CMake bug in QPID-5173
        • Added Dynamic assignment of routable addresses for outbound links (QPID-5181)
        • Changed the indentation of the Python code from 2 spaces to 4 spaces.
        • Reduced the default log level to make the console less chatty.
        Show
        ASF subversion and git services added a comment - Commit 1526694 from Ted Ross in branch 'qpid/trunk' [ https://svn.apache.org/r1526694 ] QPID-5173 QPID-5045 QPID-5181 Major refactor of the routing data structure in preparation for multi-router operation. Fixed the CMake bug in QPID-5173 Added Dynamic assignment of routable addresses for outbound links ( QPID-5181 ) Changed the indentation of the Python code from 2 spaces to 4 spaces. Reduced the default log level to make the console less chatty.
        Hide
        ASF subversion and git services added a comment -

        Commit 1526988 from Ted Ross in branch 'qpid/trunk'
        [ https://svn.apache.org/r1526988 ]

        QPID-5045 - Added connection-resident shared state for links to associate links on a connection.

        Show
        ASF subversion and git services added a comment - Commit 1526988 from Ted Ross in branch 'qpid/trunk' [ https://svn.apache.org/r1526988 ] QPID-5045 - Added connection-resident shared state for links to associate links on a connection.
        Hide
        ASF subversion and git services added a comment -

        Commit 1528512 from Ted Ross in branch 'qpid/trunk'
        [ https://svn.apache.org/r1528512 ]

        QPID-5045 - Added additional indexing for inter-router links.
        QPID-5201 - Fixed compile issues under "Release" builds.

        Show
        ASF subversion and git services added a comment - Commit 1528512 from Ted Ross in branch 'qpid/trunk' [ https://svn.apache.org/r1528512 ] QPID-5045 - Added additional indexing for inter-router links. QPID-5201 - Fixed compile issues under "Release" builds.
        Hide
        Ted Ross added a comment -

        The data structures have been completed. Link-based routing is not yet implemented.

        Show
        Ted Ross added a comment - The data structures have been completed. Link-based routing is not yet implemented.

          People

          • Assignee:
            Ted Ross
            Reporter:
            Ted Ross
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development