{"action":"created","issue":{"url":"https://api.github.com/repos/sergiogonzalez/liferay-portal/issues/4048","repository_url":"https://api.github.com/repos/sergiogonzalez/liferay-portal","labels_url":"https://api.github.com/repos/sergiogonzalez/liferay-portal/issues/4048/labels{/name}","comments_url":"https://api.github.com/repos/sergiogonzalez/liferay-portal/issues/4048/comments","events_url":"https://api.github.com/repos/sergiogonzalez/liferay-portal/issues/4048/events","html_url":"https://github.com/sergiogonzalez/liferay-portal/pull/4048","id":265429567,"number":4048,"title":"LPS-75240","user":{"login":"jonathanmccann","id":1919610,"avatar_url":"https://avatars2.githubusercontent.com/u/1919610?v=4","gravatar_id":"","url":"https://api.github.com/users/jonathanmccann","html_url":"https://github.com/jonathanmccann","followers_url":"https://api.github.com/users/jonathanmccann/followers","following_url":"https://api.github.com/users/jonathanmccann/following{/other_user}","gists_url":"https://api.github.com/users/jonathanmccann/gists{/gist_id}","starred_url":"https://api.github.com/users/jonathanmccann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonathanmccann/subscriptions","organizations_url":"https://api.github.com/users/jonathanmccann/orgs","repos_url":"https://api.github.com/users/jonathanmccann/repos","events_url":"https://api.github.com/users/jonathanmccann/events{/privacy}","received_events_url":"https://api.github.com/users/jonathanmccann/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2017-10-13T21:56:57Z","updated_at":"2017-10-25T20:54:11Z","closed_at":"2017-10-16T10:53:56Z","author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/sergiogonzalez/liferay-portal/pulls/4048","html_url":"https://github.com/sergiogonzalez/liferay-portal/pull/4048","diff_url":"https://github.com/sergiogonzalez/liferay-portal/pull/4048.diff","patch_url":"https://github.com/sergiogonzalez/liferay-portal/pull/4048.patch"},"body":"From @mbowerman\r\n\r\n>This fix does not break the [Golden rule](https://grow.liferay.com/people/DXP-+How+to+code+upgrade+process+and+backport+rules#section-DXP-+How+to+code+upgrade+process+and+backport+rules-Golden+rule) for coding upgrade processes because the Golden rule was already broken beforehand as we were querying specific columns of the UserNotificationEvent table directly. Furthermore, in my testing, the this fix improved the performance from  4636724 ms (77 minutes) to 227877 ms (4 minutes) for my test data, according to the output of the logging timer. With these numbers, I would argue that this fix qualifies for the [exception to the Golden rule](https://grow.liferay.com/people/DXP-+How+to+code+upgrade+process+and+backport+rules#section-DXP-+How+to+code+upgrade+process+and+backport+rules-Exception) anyway. \r\n\r\n>Granted, my test data didn't have any payloads with actionRequired set. I tried altering the test data so that about half the payloads had an actionRequired variable in them, and the method took 1758741 ms (29 minutes) to run. This is still noticeably better than the previous time taken of 77 minutes, although the difference isn't as stark. My guess though is that actionRequired variable isn't included in the payload most of the time though - it sounds like something that would only be used for Workflow notifications."},"comment":{"url":"https://api.github.com/repos/sergiogonzalez/liferay-portal/issues/comments/339468054","html_url":"https://github.com/sergiogonzalez/liferay-portal/pull/4048#issuecomment-339468054","issue_url":"https://api.github.com/repos/sergiogonzalez/liferay-portal/issues/4048","id":339468054,"user":{"login":"holatuwol","id":479511,"avatar_url":"https://avatars1.githubusercontent.com/u/479511?v=4","gravatar_id":"","url":"https://api.github.com/users/holatuwol","html_url":"https://github.com/holatuwol","followers_url":"https://api.github.com/users/holatuwol/followers","following_url":"https://api.github.com/users/holatuwol/following{/other_user}","gists_url":"https://api.github.com/users/holatuwol/gists{/gist_id}","starred_url":"https://api.github.com/users/holatuwol/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/holatuwol/subscriptions","organizations_url":"https://api.github.com/users/holatuwol/orgs","repos_url":"https://api.github.com/users/holatuwol/repos","events_url":"https://api.github.com/users/holatuwol/events{/privacy}","received_events_url":"https://api.github.com/users/holatuwol/received_events","type":"User","site_admin":false},"created_at":"2017-10-25T20:54:11Z","updated_at":"2017-10-25T20:54:11Z","author_association":"NONE","body":"@mbowerman: I was worried that `TRUE` doesn't work across all databases because I thought the SQLTransformer might be looking for `[$TRUE$]`, but if you've confirmed that `SQLTransformer` makes the proper substitutions on other databases, then I'm fine with it.\r\n\r\nThe idea of concurrent auto batch has resulted in SQL Server steps potentially a very long time for large transactions as the undo transaction log builds up (in some cases, the progress is so slow that it looks like it could take years just to finish a single stop), so I'm worried about even more of that code pattern going into core."}}
{"actor":{"display_login":"holatuwol"}}