Francesco Nigro created ARTEMIS-1273:
----------------------------------------

             Summary: Bounded OrderedExecutor
                 Key: ARTEMIS-1273
                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1273
             Project: ActiveMQ Artemis
          Issue Type: Bug
          Components: Broker
            Reporter: Francesco Nigro
            Assignee: Francesco Nigro


The default OrderedExecutor is limited by:
# scattered allocations of linked list nodes
# no OOM protection
# always garbage producing
# uses a not scalable (ie false sharing + CAS based) handmade spin lock 
# cost of monitoring pending tasks list size O(n)
# doesn't allow optimized version of task submission (ie single producer)

The BoundedOrderedExecutor (enabled by default) solves them:
# uses Array based lock/wait-free queues to have contiguos allocations
# OOM protected limiting the allowed max size of the queue
# produce garbage only if the consumer can't keep up with the producer by a 
configurable amount
# uses a scalable handmade spin lock (XADD based)
# cost of monitoring pending tasks list size O(1)
# allow optimized versions of task submission using different specialized 
concurrent queues






--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to