Qpid
  1. Qpid
  2. QPID-2515

Need to be able to set flow control in Java on a per destination level

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.7
    • Component/s: None
    • Labels:
      None

      Description

      Currently consumer flow control is set at connection level.
      It would nice if "capacity" (in number of messages) could be specified on a per destination basis.
      We do not support producer side flow control yet, but when we do this should be easily adapted there as well.

      I propose to include capacity as a link property in the new addressing scheme.

        Activity

        Hide
        Rajith Attapattu added a comment -

        Added support for this at rev 945945 in Qpid trunk.
        However some issues remain.

        I have highlighted them here.
        http://apache-qpid-developers.2158895.n2.nabble.com/Destination-based-flow-control-and-it-s-affect-on-session-level-heuristics-td5072386.html#a5072386

        Show
        Rajith Attapattu added a comment - Added support for this at rev 945945 in Qpid trunk. However some issues remain. I have highlighted them here. http://apache-qpid-developers.2158895.n2.nabble.com/Destination-based-flow-control-and-it-s-affect-on-session-level-heuristics-td5072386.html#a5072386
        Hide
        Martin Ritchie added a comment -

        The Java Broker supports PFC on the 0-91/0-9/0-8 branch using queue arguments:
        x-qpid-capacity
        x-qpid-flow-resume-capacity
        See here:
        http://qpid.apache.org/use-producer-flow-control.html

        I'm not sure that reusing these values to configure consumer flow control is the right approach. We should be able to configure the two indepenantly.
        Once I'm done with the Slow Consumer Detection work I'm scheduled to work on including Producer Flow Control on the 0-10 code path so would be good if we could work together on how these will interact.

        Show
        Martin Ritchie added a comment - The Java Broker supports PFC on the 0-91/0-9/0-8 branch using queue arguments: x-qpid-capacity x-qpid-flow-resume-capacity See here: http://qpid.apache.org/use-producer-flow-control.html I'm not sure that reusing these values to configure consumer flow control is the right approach. We should be able to configure the two indepenantly. Once I'm done with the Slow Consumer Detection work I'm scheduled to work on including Producer Flow Control on the 0-10 code path so would be good if we could work together on how these will interact.
        Hide
        Rajith Attapattu added a comment -

        Fixed along with a test case.
        You could now specify the flow control on a per destination basis using the "capacity" property in the new addressing mechanism.
        Ex. my-queue; {create: always, link:

        {capacity: 10}

        }

        Show
        Rajith Attapattu added a comment - Fixed along with a test case. You could now specify the flow control on a per destination basis using the "capacity" property in the new addressing mechanism. Ex. my-queue; {create: always, link: {capacity: 10} }

          People

          • Assignee:
            Rajith Attapattu
            Reporter:
            Rajith Attapattu
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development