You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2018/12/26 07:01:00 UTC

[jira] [Commented] (ARTEMIS-2214) Cache durable&priority in PagedReference to avoid blocks in consuming paged messages

    [ https://issues.apache.org/jira/browse/ARTEMIS-2214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16728906#comment-16728906 ] 

ASF GitHub Bot commented on ARTEMIS-2214:
-----------------------------------------

GitHub user qihongxu opened a pull request:

    https://github.com/apache/activemq-artemis/pull/2482

    ARTEMIS-2214 Cache durable&priority in PagedReference

    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.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/qihongxu/activemq-artemis modify_pagedReference

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/activemq-artemis/pull/2482.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #2482
    
----
commit a49ad880c2372afdb88bd805fb6e20fdae1de784
Author: Qihong Xu <qi...@...>
Date:   2018-12-26T03:11:10Z

    ARTEMIS-2214 Cache durable&priority in PagedReference

----


> 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)