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)