Petals ESB Container

Remove undocumented non-working Router's rate control, filter control and prority queues modules

Details

  • Type: Task Task
  • Status: Resolved Resolved
  • Priority: Major Major
  • Resolution: Fixed
  • Affects Version/s: 5.0.0
  • Fix Version/s: 5.0.1
  • Component/s: Persistence, Router
  • Security Level: Public
  • Description:
    Hide

    Related to PETALSESBCONT-400, the router contains 3 modules:

    • Flow Control aka rate control, which slows down the send of consumers to achieve a limited maximum rate of messages.
    • Filter Control, which slows down the send of consumers to achieve a maximum number send in a given window.
    • Priority Orderer, which supported the implementation of the previous two.

    The Flow Control relied on the Router Monitor (see PETALSESBCONT-400) by asking it to monitor some given exchanges in order to be able to count them and on the Priority Orderer to slow the send down when desired.
    The Filter Control was only relying on the Priority Orderer and was counting the exchanges by itself.
    The Priority Orderer, because it was slowing down exchanges, was also relying on the Persistence service to persist there exchange when there was no memory available (using a JVM mechanism that would notify it in that case).

    In practice, these modules have the following flaws:

    • They have big design problem: they would act on exchanges BEFORE the target endpoint was selected (i.e. they relied on the information provided in the exchange and not the resolved endpoint), and thus were maybe slowing down the wrong exchanges or not slowing down desired ones.
    • The persistence mechanism on case of memory problem was covering only the exchanges that were slow down, but not those in the queues, i.e., it wasn't generalised.
    • The idea of slowing down the send is not so good as it blocks the consumers, even when they were doing asynchronous messaging!

    For all these reasons and the fact they were not documented, they should be removed.
    As stated in PETALSESBCONT-400, the rate control mechanisms could be reimplemented more cleanly at CDK level (i.e. give the responsibility of not handling too much exchange at once to the components and not the router).
    For replacing persistence, see PETALSESBCONT-339.

    Show
    Related to PETALSESBCONT-400, the router contains 3 modules:
    • Flow Control aka rate control, which slows down the send of consumers to achieve a limited maximum rate of messages.
    • Filter Control, which slows down the send of consumers to achieve a maximum number send in a given window.
    • Priority Orderer, which supported the implementation of the previous two.
    The Flow Control relied on the Router Monitor (see PETALSESBCONT-400) by asking it to monitor some given exchanges in order to be able to count them and on the Priority Orderer to slow the send down when desired. The Filter Control was only relying on the Priority Orderer and was counting the exchanges by itself. The Priority Orderer, because it was slowing down exchanges, was also relying on the Persistence service to persist there exchange when there was no memory available (using a JVM mechanism that would notify it in that case). In practice, these modules have the following flaws:
    • They have big design problem: they would act on exchanges BEFORE the target endpoint was selected (i.e. they relied on the information provided in the exchange and not the resolved endpoint), and thus were maybe slowing down the wrong exchanges or not slowing down desired ones.
    • The persistence mechanism on case of memory problem was covering only the exchanges that were slow down, but not those in the queues, i.e., it wasn't generalised.
    • The idea of slowing down the send is not so good as it blocks the consumers, even when they were doing asynchronous messaging!
    For all these reasons and the fact they were not documented, they should be removed. As stated in PETALSESBCONT-400, the rate control mechanisms could be reimplemented more cleanly at CDK level (i.e. give the responsibility of not handling too much exchange at once to the components and not the router). For replacing persistence, see PETALSESBCONT-339.
  • Environment:
    -

Issue Links

Activity

Victor NOËL made changes - Mon, 29 Feb 2016 - 10:09:56 +0100
Field Original Value New Value
Status New [ 10000 ] Open [ 10002 ]
Priority Major [ 3 ]
Assignee Christophe DENEUX [ cdeneux ] Victor NOËL [ vnoel ]
Victor NOËL made changes - Mon, 29 Feb 2016 - 10:09:58 +0100
Status Open [ 10002 ] In Progress [ 10003 ]
Victor NOËL made changes - Mon, 29 Feb 2016 - 10:10:10 +0100
Link This issue depends on PETALSESBCONT-400 [ PETALSESBCONT-400 ]
Victor NOËL made changes - Mon, 29 Feb 2016 - 10:10:30 +0100
Link This issue depends on PETALSESBCONT-400 [ PETALSESBCONT-400 ]
Victor NOËL made changes - Mon, 29 Feb 2016 - 10:10:35 +0100
Link This issue blocks PETALSESBCONT-400 [ PETALSESBCONT-400 ]
Victor NOËL made changes - Mon, 29 Feb 2016 - 10:11:05 +0100
Link This issue blocks PETALSESBCONT-339 [ PETALSESBCONT-339 ]
Victor NOËL made changes - Mon, 29 Feb 2016 - 10:23:22 +0100
Link This issue blocks PETALSESBCONT-402 [ PETALSESBCONT-402 ]
Victor NOËL made changes - Tue, 1 Mar 2016 - 10:19:41 +0100
Status In Progress [ 10003 ] Resolved [ 10004 ]
Fix Version/s 5.0.1 [ 10579 ]
Resolution Fixed [ 1 ]
Transition Status Change Time Execution Times Last Executer Last Execution Date
New New Open Open
8s
1
Victor NOËL
Mon, 29 Feb 2016 - 10:09:56 +0100
Open Open In Progress In Progress
2s
1
Victor NOËL
Mon, 29 Feb 2016 - 10:09:58 +0100
In Progress In Progress Resolved Resolved
1d 9m
1
Victor NOËL
Tue, 1 Mar 2016 - 10:19:41 +0100



People

Dates

  • Created:
    Mon, 29 Feb 2016 - 10:09:48 +0100
    Updated:
    Tue, 1 Mar 2016 - 10:19:41 +0100
    Resolved:
    Tue, 1 Mar 2016 - 10:19:41 +0100