[
https://issues.apache.org/jira/browse/ARTEMIS-2214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16733900#comment-16733900
]
ASF GitHub Bot commented on ARTEMIS-2214:
-----------------------------------------
Github user qihongxu commented on the issue:
https://github.com/apache/activemq-artemis/pull/2482
> Im very cautious of optimising for one case
> Its very unusual for consumers to go away as it is good design in most
mom a consumer is long lived. Like wise upgrade is a non normal event.
>
> So without priority removed im -1 this. As i stated in an ideal world
everything in paging would be off heap, we shouldnt just end up with every
value in page ref, else we lose the reason for paging originals intent which is
to remove the message from heap at penalty that it will be slower. If you want
faster add more ram so more can be kept on heap.
Not adding priority is acceptable since it's rare. I will later remove the
priority part.
And how about deliveryTime? It's already in PageRef and might need to be
set in the constructor.
> Cache durable&priority in PagedReference to avoid blocks in consuming paged
> messages
> ------------------------------------------------------------------------------------
>
> Key: ARTEMIS-2214
> URL: https://issues.apache.org/jira/browse/ARTEMIS-2214
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Components: Broker
> Affects Versions: 2.6.3
> Reporter: Qihong Xu
> Priority: Major
> Attachments: stacks.txt
>
>
> We recently performed a test on artemis broker and found a severe performance
> issue.
> When paged messages are being consumed, decrementMetrics in
> QueuePendingMessageMetrics will try to ‘getMessage’ to check whether they are
> durable or not. In this way queue will be locked for a long time because page
> may be GCed and need to be reload entirely. Other operations rely on queue
> will be blocked at this time, which cause a significant TPS drop. Detailed
> stacks are attached below.
> This also happens when consumer is closed and messages are pushed back to the
> queue, artemis will check priority on return if these messages are paged.
> To solve the issue, durable and priority need to be cached in PagedReference
> just like messageID, transactionID and so on. I have applied a patch to fix
> the issue. Any review is appreciated.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)