{"action":"created","issue":{"url":"https://api.github.com/repos/apache/activemq-artemis/issues/1827","repository_url":"https://api.github.com/repos/apache/activemq-artemis","labels_url":"https://api.github.com/repos/apache/activemq-artemis/issues/1827/labels{/name}","comments_url":"https://api.github.com/repos/apache/activemq-artemis/issues/1827/comments","events_url":"https://api.github.com/repos/apache/activemq-artemis/issues/1827/events","html_url":"https://github.com/apache/activemq-artemis/pull/1827","id":293010030,"number":1827,"title":"Improve paged message acknowledge","user":{"login":"shoukunhuai","id":14814932,"avatar_url":"https://avatars1.githubusercontent.com/u/14814932?v=4","gravatar_id":"","url":"https://api.github.com/users/shoukunhuai","html_url":"https://github.com/shoukunhuai","followers_url":"https://api.github.com/users/shoukunhuai/followers","following_url":"https://api.github.com/users/shoukunhuai/following{/other_user}","gists_url":"https://api.github.com/users/shoukunhuai/gists{/gist_id}","starred_url":"https://api.github.com/users/shoukunhuai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shoukunhuai/subscriptions","organizations_url":"https://api.github.com/users/shoukunhuai/orgs","repos_url":"https://api.github.com/users/shoukunhuai/repos","events_url":"https://api.github.com/users/shoukunhuai/events{/privacy}","received_events_url":"https://api.github.com/users/shoukunhuai/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2018-01-31T02:29:15Z","updated_at":"2018-02-01T08:00:27Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/apache/activemq-artemis/pulls/1827","html_url":"https://github.com/apache/activemq-artemis/pull/1827","diff_url":"https://github.com/apache/activemq-artemis/pull/1827.diff","patch_url":"https://github.com/apache/activemq-artemis/pull/1827.patch"},"body":"\r\n\r\nCache `messageID`, `transactionID` and `isLargeMessage`\r\nin PagedReference, so that when acknowledge, we do not have to\r\nget PagedMessage which may be GCed and cause re-read entire page.\r\n\r\nAlso, in RefsOperation::afterCommit do not lock queue when do\r\npostAcknowledge. I think this method is thread safe.\r\n\r\nAnd last, decrement ref count after commit only if it is a paged large message.\r\nLarge message depends on this operation to delete file. Other implements does nothing in this method.\r\n\r\nAll those change is to avoid get PagedMessage when acknowledge.\r\n\r\nLet me know if there is anything wrong.\r\n\r\n@clebertsuconic would you please help review this PR? I will create jira issue when necessary.\r\n\r\nAttached is thread dump when doing stress test, we found most of server thread is blocked on page operation.\r\nWe use Artemis 2.4.0, run 10 jmeter engine, for each engine started 100 publisher and 50 subscriber.\r\nWe changed jmeter to use shared subscription, and blockOnAcknowledge is set true.\r\n\r\n[jstack.txt](https://github.com/apache/activemq-artemis/files/1680132/jstack.txt)\r\n"},"comment":{"url":"https://api.github.com/repos/apache/activemq-artemis/issues/comments/362187433","html_url":"https://github.com/apache/activemq-artemis/pull/1827#issuecomment-362187433","issue_url":"https://api.github.com/repos/apache/activemq-artemis/issues/1827","id":362187433,"user":{"login":"michaelandrepearce","id":1387822,"avatar_url":"https://avatars1.githubusercontent.com/u/1387822?v=4","gravatar_id":"","url":"https://api.github.com/users/michaelandrepearce","html_url":"https://github.com/michaelandrepearce","followers_url":"https://api.github.com/users/michaelandrepearce/followers","following_url":"https://api.github.com/users/michaelandrepearce/following{/other_user}","gists_url":"https://api.github.com/users/michaelandrepearce/gists{/gist_id}","starred_url":"https://api.github.com/users/michaelandrepearce/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaelandrepearce/subscriptions","organizations_url":"https://api.github.com/users/michaelandrepearce/orgs","repos_url":"https://api.github.com/users/michaelandrepearce/repos","events_url":"https://api.github.com/users/michaelandrepearce/events{/privacy}","received_events_url":"https://api.github.com/users/michaelandrepearce/received_events","type":"User","site_admin":false},"created_at":"2018-02-01T08:00:27Z","updated_at":"2018-02-01T08:00:27Z","author_association":"CONTRIBUTOR","body":"Could a JIRA ticket exist for this, and the commit message be updated to include the JIRA. Thanks."}}
{"actor":{"display_login":"michaelandrepearce"}}