llog_write could use llog cookie for a single record modification. In this case there is no need to process all records before an update of the record. HSM regular updates record, and cancels it after timeout only, so there could be many records at the same time. And this introduce a bottleneck for HSM.
llog subsystem requires some additional functions to do it. Also HSM need to store a whole llog record for a modification, and this leads to a different structures in memory for a HSM.
Now, Lustre operates and stores hsm_action_item, however llog_agent_req_rec include hai already. So this change is some trade of for a memory vs additional processing.
We have a testing results for this patch at perf cluster, many thanks to Nikitas.
Test 1
Adding 1000.000 archive requests
start copy tool to process requests with no operation (get req and reply, to avoid copytool processing time, to measure only Lustre)
measuring the time needed for the copytool to handle the first 1,000,000 requests
Test 2
Similar to test 1, but also queueing an additional 1,000,000 requests in the MDT, immediately after start of processing, measuring the time needed for the copytool to handle the first 1,000,000 requests.
The patch should offer a significant performance benefit compared to current 2.16
Alexander Boyko
added a comment - We have a testing results for this patch at perf cluster, many thanks to Nikitas.
Test 1
Adding 1000.000 archive requests
start copy tool to process requests with no operation (get req and reply, to avoid copytool processing time, to measure only Lustre)
measuring the time needed for the copytool to handle the first 1,000,000 requests
Test 2
Similar to test 1, but also queueing an additional 1,000,000 requests in the MDT, immediately after start of processing, measuring the time needed for the copytool to handle the first 1,000,000 requests.
base
LU-18556 patch
Test 1 seconds
572
187
Test 2 seconds
558
392
The patch should offer a significant performance benefit compared to current 2.16
the idea of updating a llog record through llog processing - has much overhead.
there is no need to go through the llog looking for a specific record – if you have something like an index.
Alex Zhuravlev
added a comment - the idea of updating a llog record through llog processing - has much overhead.
there is no need to go through the llog looking for a specific record – if you have something like an index.
I'll take a look. But llog improvement would not help much to HSM, because the idea of updating a llog record through llog processing - has much overhead. With massive HSM archive, release etc., it is disaster. Llog was not designed for such using.
We had an attempt to replace the HSM actions queue llog with index, in an effort to address a performance issues. But the massive testing showed it became worse then llog.
Alexander Boyko
added a comment - I'll take a look. But llog improvement would not help much to HSM, because the idea of updating a llog record through llog processing - has much overhead. With massive HSM archive, release etc., it is disaster. Llog was not designed for such using.
We had an attempt to replace the HSM actions queue llog with index, in an effort to address a performance issues. But the massive testing showed it became worse then llog.
HSM uses local llog, so it is not related to DNE3 problem.
that approach solves "local" problems as well - removes need for expensive serialization.
Alex Zhuravlev
added a comment - HSM uses local llog, so it is not related to DNE3 problem.
that approach solves "local" problems as well - removes need for expensive serialization.
Alexander Boyko
added a comment - HSM uses local llog, so it is not related to DNE3 problem. Also I've pushed an improvement for changelog+mdtest https://review.whamcloud.com/c/fs/lustre-release/+/56342
"Alexander Boyko <alexander.boyko@hpe.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/57428
Subject: LU-18556 hsm: use direct modifying llog record
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 780d31e9b83896d18aa7cda52ec59c2a4a035f66
Gerrit Updater
added a comment - "Alexander Boyko <alexander.boyko@hpe.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/57428
Subject: LU-18556 hsm: use direct modifying llog record
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 780d31e9b83896d18aa7cda52ec59c2a4a035f66
People
Alexander Boyko
Alexander Boyko
Votes:
0Vote for this issue
Watchers:
5Start watching this issue
Dates
Created:
Updated:
1 of 4
{"searchers":{"groups":[{"searchers":[{"name":"Project","id":"project","key":"issue.field.project","isShown":true,"lastViewed":1743901206259},{"name":"Summary","id":"summary","key":"issue.field.summary","isShown":true},{"name":"Type","id":"issuetype","key":"issue.field.issuetype","isShown":true,"lastViewed":1743901206260},{"name":"Status","id":"status","key":"issue.field.status","isShown":true,"lastViewed":1743901206280},{"name":"Priority","id":"priority","key":"issue.field.priority","isShown":true},{"name":"Resolution","id":"resolution","key":"issue.field.resolution","isShown":true},{"name":"Creator","id":"creator","key":"issue.field.creator","isShown":true},{"name":"Affects Version","id":"version","key":"issue.field.affectsversions","isShown":true},{"name":"Fix Version","id":"fixfor","key":"issue.field.fixversions","isShown":true},{"name":"Component","id":"component","key":"issue.field.components","isShown":false},{"name":"% Limits","id":"workratio","key":"issue.field.workratio","isShown":true},{"name":"Link types","id":"issue_link_type","key":"issue.field.issuelinks","isShown":true},{"name":"Environment","id":"environment","key":"issue.field.environment","isShown":true},{"name":"Description","id":"description","key":"issue.field.description","isShown":true},{"name":"Comment","id":"comment","key":"issue.field.comment","isShown":true},{"name":"Label","id":"labels","key":"issue.field.labels","isShown":true},{"name":"Query","id":"text","key":"text","isShown":true},{"name":"Bugzilla ID","id":"customfield_10020","key":"com.atlassian.jira.plugin.system.customfieldtypes:float","isShown":false},{"name":"Business Value","id":"customfield_10003","key":"com.atlassian.jira.plugin.system.customfieldtypes:float","isShown":false},{"name":"Development","id":"customfield_10890","key":"com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary","isShown":true},{"name":"Epic","id":"customfield_10040","key":"com.atlassian.jira.plugin.system.customfieldtypes:labels","isShown":true},{"name":"Epic Colour","id":"customfield_10095","key":"com.pyxis.greenhopper.jira:gh-epic-color","isShown":false},{"name":"Epic Link","id":"customfield_10092","key":"com.pyxis.greenhopper.jira:gh-epic-link","isShown":true},{"name":"Epic Name","id":"customfield_10093","key":"com.pyxis.greenhopper.jira:gh-epic-label","isShown":true},{"name":"Epic Status","id":"customfield_10094","key":"com.pyxis.greenhopper.jira:gh-epic-status","isShown":false},{"name":"Epic/Theme","id":"customfield_10030","key":"com.atlassian.jira.plugin.system.customfieldtypes:labels","isShown":true,"lastViewed":1743901206285},{"name":"Flagged","id":"customfield_10000","key":"com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes","isShown":true},{"name":"IEEL Options","id":"customfield_10191","key":"com.atlassian.jira.plugin.system.customfieldtypes:multiselect","isShown":true},{"name":"Original story points","id":"customfield_11094","key":"com.atlassian.jpo:jpo-custom-field-original-story-points","isShown":true},{"name":"Parent Link","id":"customfield_11091","key":"com.atlassian.jpo:jpo-custom-field-parent","isShown":false},{"name":"Project","id":"customfield_10070","key":"com.atlassian.jira.plugin.system.customfieldtypes:select","isShown":true},{"name":"Rank","id":"customfield_10390","key":"com.pyxis.greenhopper.jira:gh-lexo-rank","isShown":true},{"name":"Rank (Obsolete)","id":"customfield_10001","key":"com.atlassian.jira.plugin.system.customfieldtypes:float","isShown":false},{"name":"Rank (Obsolete)","id":"customfield_10090","key":"com.pyxis.greenhopper.jira:gh-global-rank","isShown":true},{"name":"Release Version History","id":"customfield_10050","key":"com.pyxis.greenhopper.jira:greenhopper-releasedmultiversionhistory","isShown":true},{"name":"Severity","id":"customfield_10060","key":"com.atlassian.jira.plugin.system.customfieldtypes:select","isShown":true},{"name":"Site Affected:","id":"customfield_10190","key":"com.atlassian.jira.plugin.system.customfieldtypes:textfield","isShown":true},{"name":"Sprint","id":"customfield_10091","key":"com.pyxis.greenhopper.jira:gh-sprint","isShown":true},{"name":"Story Points","id":"customfield_10002","key":"com.atlassian.jira.plugin.system.customfieldtypes:float","isShown":true},{"name":"Support Region","id":"customfield_10990","key":"com.atlassian.jira.plugin.system.customfieldtypes:select","isShown":true},{"name":"Team","id":"customfield_11090","key":"com.atlassian.teams:rm-teams-custom-field-team","isShown":true},{"name":"Upstreaming","id":"customfield_10290","key":"com.atlassian.jira.plugin.system.customfieldtypes:select","isShown":true},{"name":"Whiteboard","id":"customfield_10591","key":"com.atlassian.jira.plugin.system.customfieldtypes:textfield","isShown":true},{"name":"issueFunction","id":"customfield_10590","key":"com.onresolve.jira.groovy.groovyrunner:jqlFunctionsCustomFieldType","isShown":true}],"type":"DETAILS","title":"Details"},{"searchers":[{"name":"Created Date","id":"created","key":"issue.field.created","isShown":true},{"name":"Updated Date","id":"updated","key":"issue.field.updated","isShown":true},{"name":"Resolution Date","id":"resolutiondate","key":"issue.field.resolution.date","isShown":true},{"name":"Due Date","id":"duedate","key":"issue.field.duedate","isShown":true},{"name":"Baseline end date","id":"customfield_10494","key":"com.atlassian.jira.plugin.system.customfieldtypes:datepicker","isShown":true},{"name":"Baseline start date","id":"customfield_10492","key":"com.atlassian.jira.plugin.system.customfieldtypes:datepicker","isShown":true},{"name":"Baseline start date","id":"customfield_10790","key":"com.atlassian.jira.plugin.system.customfieldtypes:datepicker","isShown":true},{"name":"End date","id":"customfield_10490","key":"com.atlassian.jira.plugin.system.customfieldtypes:datepicker","isShown":true},{"name":"Start date","id":"customfield_10493","key":"com.atlassian.jira.plugin.system.customfieldtypes:datepicker","isShown":true},{"name":"Target end","id":"customfield_11093","key":"com.atlassian.jpo:jpo-custom-field-baseline-end","isShown":true},{"name":"Target start","id":"customfield_11092","key":"com.atlassian.jpo:jpo-custom-field-baseline-start","isShown":true}],"type":"DATES","title":"Dates"},{"searchers":[{"name":"Assignee","id":"assignee","key":"issue.field.assignee","isShown":true,"lastViewed":1743901206283},{"name":"Reporter","id":"reporter","key":"issue.field.reporter","isShown":true}],"type":"PEOPLE","title":"People"}]},"values":{"issuetype":{"name":"Type","editHtml":"\n\n\n\n <div class=\"field-group aui-field-issuetype\" >\n <label for=\"searcher-type\">Type</label> <select class=\"select js-default-checkboxmultiselect\"\n id=\"searcher-type\"\n multiple=\"multiple\"\n name=\"type\"\n data-max-inline-results-displayed=\"100\"\n data-placeholder-text=\"Find Issue Types...\">\n <optgroup>\n \n <option class=\" \"\n id=\"type_-2\"\n title=\"All Standard Issue Types\"\n value=\"-2\">All Standard Issue Types</option>\n \n <option class=\" \"\n id=\"type_-3\"\n title=\"All Sub-Task Issue Types\"\n value=\"-3\">All Sub-Task Issue Types</option>\n </optgroup>\n\n <optgroup label=\"Standard Issue Types\">\n \n <option class=\" imagebacked 10000 \"\n data-icon=\"/secure/viewavatar?size=xsmall&avatarId=11303&avatarType=issuetype\"\n data-fallback-icon=\"/images/icons/issuetypes/blank.png\"\n id=\"type_1\"\n title=\"Bug\"\n value=\"1\">Bug</option>\n \n <option class=\" imagebacked 10000 \"\n data-icon=\"/images/icons/issuetypes/epic.png\"\n data-fallback-icon=\"/images/icons/issuetypes/blank.png\"\n id=\"type_5\"\n title=\"Epic\"\n value=\"5\">Epic</option>\n \n <option class=\" imagebacked 10000 \"\n data-icon=\"/secure/viewavatar?size=xsmall&avatarId=11310&avatarType=issuetype\"\n data-fallback-icon=\"/images/icons/issuetypes/blank.png\"\n id=\"type_4\"\n title=\"Improvement\"\n value=\"4\">Improvement</option>\n \n <option class=\" imagebacked 10000 \"\n data-icon=\"/secure/viewavatar?size=xsmall&avatarId=11311&avatarType=issuetype\"\n data-fallback-icon=\"/images/icons/issuetypes/blank.png\"\n id=\"type_2\"\n title=\"New Feature\"\n value=\"2\">New Feature</option>\n \n <option class=\" imagebacked 10000 \"\n data-icon=\"/images/icons/issuetypes/undefined.png\"\n data-fallback-icon=\"/images/icons/issuetypes/blank.png\"\n id=\"type_9\"\n title=\"Question/Request\"\n value=\"9\">Question/Request</option>\n \n <option class=\" imagebacked 10000 \"\n data-icon=\"/secure/viewavatar?size=xsmall&avatarId=11300&avatarType=issuetype\"\n data-fallback-icon=\"/images/icons/issuetypes/blank.png\"\n id=\"type_10200\"\n title=\"Requirement\"\n value=\"10200\">Requirement</option>\n \n <option class=\" imagebacked 10000 \"\n data-icon=\"/secure/viewavatar?size=xsmall&avatarId=11315&avatarType=issuetype\"\n data-fallback-icon=\"/images/icons/issuetypes/blank.png\"\n id=\"type_6\"\n title=\"Story\"\n value=\"6\">Story</option>\n \n <option class=\" imagebacked 10000 \"\n data-icon=\"/secure/viewavatar?size=xsmall&avatarId=11318&avatarType=issuetype\"\n data-fallback-icon=\"/images/icons/issuetypes/blank.png\"\n id=\"type_3\"\n title=\"Task\"\n value=\"3\">Task</option>\n \n <option class=\" imagebacked 10000 \"\n data-icon=\"/download/resources/com.thed.zephyr.je/images/icons/ico_zephyr_issuetype.png\"\n data-fallback-icon=\"/images/icons/issuetypes/blank.png\"\n id=\"type_10100\"\n title=\"Test\"\n value=\"10100\">Test</option>\n </optgroup>\n\n <optgroup label=\"Sub-Task Issue Types\">\n \n <option class=\" imagebacked 10000 \"\n data-icon=\"/secure/viewavatar?size=xsmall&avatarId=11316&avatarType=issuetype\"\n data-fallback-icon=\"/images/icons/issuetypes/blank.png\"\n id=\"type_10300\"\n title=\"Requirement task\"\n value=\"10300\">Requirement task</option>\n \n <option class=\" imagebacked 10000 \"\n data-icon=\"/secure/viewavatar?size=xsmall&avatarId=11300&avatarType=issuetype\"\n data-fallback-icon=\"/images/icons/issuetypes/blank.png\"\n id=\"type_8\"\n title=\"Review task\"\n value=\"8\">Review task</option>\n \n <option class=\" imagebacked 10000 \"\n data-icon=\"/images/icons/issuetypes/task_agile.png\"\n data-fallback-icon=\"/images/icons/issuetypes/blank.png\"\n id=\"type_7\"\n title=\"Technical task\"\n value=\"7\">Technical task</option>\n </optgroup>\n </select>\n </div>\n ","validSearcher":true,"isShown":true},"customfield_10030":{"name":"Epic/Theme","viewHtml":"\n\n\n <div class=\"searcherValue\">\n \n <label class=\"fieldLabel\" for=\"fieldcustomfield_10030\">Epic/Theme:</label><span id=\"fieldcustomfield_10030\" class=\"fieldValue \">\n \nhsm\n</span></div>\n","editHtml":"\n <div class=\"field-group aui-field-text\" >\n <label for=\"searcher-customfield_10030\">Epic/Theme</label> <input class=\"text\" id=\"searcher-customfield_10030\" name=\"customfield_10030\" type=\"text\" value=\"hsm\" />\n <div class=\"description\" id=\"customfield_10030-description\"><p>Field that will help you regroup issues under an Epic or under a theme.</p></div>\n </div>\n ","jql":"\"Epic/Theme\" = hsm","validSearcher":true,"isShown":true},"project":{"name":"Project","editHtml":" \n <div class=\"field-group aui-field-project\" >\n <label for=\"searcher-pid\">Project</label> <select class=\"js-project-checkboxmultiselect\"\n data-placeholder-text=\"Find Projects...\"\n id=\"searcher-pid\"\n multiple=\"multiple\"\n name=\"pid\">\n <optgroup label=\"Recent Projects\">\n </optgroup>\n <optgroup label=\"All Projects\" >\n \n <option data-icon=\"/secure/projectavatar?pid=11910&size=small\"\n title=\"Lemur\"\n value=\"11910\">\n Lemur (LMR)\n </option>\n <option data-icon=\"/secure/projectavatar?pid=10000&size=small\"\n title=\"Lustre\"\n value=\"10000\">\n Lustre (LU)\n </option>\n <option data-icon=\"/secure/projectavatar?pid=10070&size=small\"\n title=\"Lustre Documentation\"\n value=\"10070\">\n Lustre Documentation (LUDOC)\n </option>\n </optgroup>\n </select>\n </div>\n \n\n","validSearcher":true,"isShown":true},"assignee":{"name":"Assignee","editHtml":"\n \n <div class=\"field-group aui-field-userlist\" >\n <label for=\"searcher-assigneeSelect\">Assignee</label> <fieldset rel=\"assignee\" class=\"hidden user-group-searcher-params\">\n </fieldset>\n <select class=\"js-usergroup-checkboxmultiselect\" multiple=\"multiple\" id=\"assignee\" name=\"assignee\" data-placeholder-text=\"Enter username or group\">\n <optgroup>\n <option class=\"headerOption\" data-icon=\"https://jira.whamcloud.com/secure/useravatar?size=xsmall&avatarId=10123\" value=\"empty\" title=\"Unassigned\">Unassigned</option>\n </optgroup>\n <optgroup>\n </optgroup>\n </select>\n <input type=\"hidden\" name=\"check_prev_assignee\" value=\"true\">\n </div>\n \n","validSearcher":true,"isShown":true},"status":{"name":"Status","editHtml":"\n <div class=\"field-group aui-field-constants\" >\n <label for=\"searcher-status\">Status</label> <select class=\"select js-default-checkboxmultiselectstatuslozenge\"\n data-placeholder-text=\"Find Statuses...\"\n id=\"searcher-status\"\n multiple=\"multiple\"\n name=\"status\"\n data-max-inline-results-displayed=\"100\"\n data-footer-text=\"-78 more options. Continue typing to refine further.\" data-status-lozenge=\"true\">\n <optgroup >\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/open.png\" value=\"1\" title=\"Open\" data-simple-status=\"{"id":"1","name":"Open","description":"The issue is open and ready for the assignee to start work on it.","iconUrl":"/images/icons/statuses/open.png","statusCategory":{"id":2,"key":"new","colorName":"default"}}\">Open</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/inprogress.png\" value=\"3\" title=\"In Progress\" data-simple-status=\"{"id":"3","name":"In Progress","description":"This issue is being actively worked on at the moment by the assignee.","iconUrl":"/images/icons/statuses/inprogress.png","statusCategory":{"id":4,"key":"indeterminate","colorName":"inprogress"}}\">In Progress</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/reopened.png\" value=\"4\" title=\"Reopened\" data-simple-status=\"{"id":"4","name":"Reopened","description":"This issue was once resolved, but the resolution was deemed incorrect. From here issues are either marked assigned or resolved.","iconUrl":"/images/icons/statuses/reopened.png","statusCategory":{"id":2,"key":"new","colorName":"default"}}\">Reopened</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/resolved.png\" value=\"5\" title=\"Resolved\" data-simple-status=\"{"id":"5","name":"Resolved","description":"A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.","iconUrl":"/images/icons/statuses/resolved.png","statusCategory":{"id":3,"key":"done","colorName":"success"}}\">Resolved</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/closed.png\" value=\"6\" title=\"Closed\" data-simple-status=\"{"id":"6","name":"Closed","description":"The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.","iconUrl":"/images/icons/statuses/closed.png","statusCategory":{"id":3,"key":"done","colorName":"success"}}\">Closed</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/generic.png\" value=\"10000\" title=\"Accepted\" data-simple-status=\"{"id":"10000","name":"Accepted","description":"","iconUrl":"/images/icons/statuses/generic.png","statusCategory":{"id":3,"key":"done","colorName":"success"}}\">Accepted</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/generic.png\" value=\"10001\" title=\"In Backlog\" data-simple-status=\"{"id":"10001","name":"In Backlog","description":"","iconUrl":"/images/icons/statuses/generic.png","statusCategory":{"id":4,"key":"indeterminate","colorName":"inprogress"}}\">In Backlog</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/generic.png\" value=\"10002\" title=\"Blocked External\" data-simple-status=\"{"id":"10002","name":"Blocked External","description":"","iconUrl":"/images/icons/statuses/generic.png","statusCategory":{"id":2,"key":"new","colorName":"default"}}\">Blocked External</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/generic.png\" value=\"10003\" title=\"Blocked Internal\" data-simple-status=\"{"id":"10003","name":"Blocked Internal","description":"","iconUrl":"/images/icons/statuses/generic.png","statusCategory":{"id":4,"key":"indeterminate","colorName":"inprogress"}}\">Blocked Internal</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/generic.png\" value=\"10004\" title=\"Pending Review\" data-simple-status=\"{"id":"10004","name":"Pending Review","description":"","iconUrl":"/images/icons/statuses/generic.png","statusCategory":{"id":4,"key":"indeterminate","colorName":"inprogress"}}\">Pending Review</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/generic.png\" value=\"10105\" title=\"Waiting On Gatekeeper\" data-simple-status=\"{"id":"10105","name":"Waiting On Gatekeeper","description":"Ticket is waiting on the gate keeper for code to land.","iconUrl":"/images/icons/statuses/generic.png","statusCategory":{"id":4,"key":"indeterminate","colorName":"inprogress"}}\">Waiting On Gatekeeper</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/closed.png\" value=\"10205\" title=\"Done\" data-simple-status=\"{"id":"10205","name":"Done","description":"","iconUrl":"/images/icons/statuses/closed.png","statusCategory":{"id":3,"key":"done","colorName":"success"}}\">Done</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/open.png\" value=\"10206\" title=\"To Do\" data-simple-status=\"{"id":"10206","name":"To Do","description":"","iconUrl":"/images/icons/statuses/open.png","statusCategory":{"id":2,"key":"new","colorName":"default"}}\">To Do</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/information.png\" value=\"10305\" title=\"In Review\" data-simple-status=\"{"id":"10305","name":"In Review","description":"","iconUrl":"/images/icons/statuses/information.png","statusCategory":{"id":4,"key":"indeterminate","colorName":"inprogress"}}\">In Review</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/generic.png\" value=\"10505\" title=\"Waiting\" data-simple-status=\"{"id":"10505","name":"Waiting","description":"Waiting for a response or something else that is required to complete the issue.","iconUrl":"/images/icons/statuses/generic.png","statusCategory":{"id":4,"key":"indeterminate","colorName":"inprogress"}}\">Waiting</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/generic.png\" value=\"10605\" title=\"Committed\" data-simple-status=\"{"id":"10605","name":"Committed","description":"","iconUrl":"/images/icons/statuses/generic.png","statusCategory":{"id":2,"key":"new","colorName":"default"}}\">Committed</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/generic.png\" value=\"10606\" title=\"Rejected\" data-simple-status=\"{"id":"10606","name":"Rejected","description":"","iconUrl":"/images/icons/statuses/generic.png","statusCategory":{"id":3,"key":"done","colorName":"success"}}\">Rejected</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/generic.png\" value=\"10607\" title=\"Completed\" data-simple-status=\"{"id":"10607","name":"Completed","description":"","iconUrl":"/images/icons/statuses/generic.png","statusCategory":{"id":3,"key":"done","colorName":"success"}}\">Completed</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/generic.png\" value=\"10608\" title=\"New\" data-simple-status=\"{"id":"10608","name":"New","description":"","iconUrl":"/images/icons/statuses/generic.png","statusCategory":{"id":2,"key":"new","colorName":"default"}}\">New</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/generic.png\" value=\"10705\" title=\"Awaiting Verification\" data-simple-status=\"{"id":"10705","name":"Awaiting Verification","description":"","iconUrl":"/images/icons/statuses/generic.png","statusCategory":{"id":4,"key":"indeterminate","colorName":"inprogress"}}\">Awaiting Verification</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/generic.png\" value=\"10706\" title=\"Fix Verified\" data-simple-status=\"{"id":"10706","name":"Fix Verified","description":"","iconUrl":"/images/icons/statuses/generic.png","statusCategory":{"id":3,"key":"done","colorName":"success"}}\">Fix Verified</option>\n <option class=\"imagebacked\" data-icon=\"/images/icons/statuses/generic.png\" value=\"10806\" title=\"Need Information\" data-simple-status=\"{"id":"10806","name":"Need Information","description":"","iconUrl":"/images/icons/statuses/generic.png","statusCategory":{"id":2,"key":"new","colorName":"default"}}\">Need Information</option>\n </optgroup>\n</select>\n </div>\n \n","validSearcher":true,"isShown":true}}}
[{"id":-1,"name":"My open issues","jql":"assignee = currentUser() AND resolution = Unresolved order by updated DESC","isSystem":true,"sharePermissions":[],"requiresLogin":true},{"id":-2,"name":"Reported by me","jql":"reporter = currentUser() order by created DESC","isSystem":true,"sharePermissions":[],"requiresLogin":true},{"id":-4,"name":"All issues","jql":"order by created DESC","isSystem":true,"sharePermissions":[],"requiresLogin":false},{"id":-5,"name":"Open issues","jql":"resolution = Unresolved order by priority DESC,updated DESC","isSystem":true,"sharePermissions":[],"requiresLogin":false},{"id":-9,"name":"Done issues","jql":"statusCategory = Done order by updated DESC","isSystem":true,"sharePermissions":[],"requiresLogin":false},{"id":-3,"name":"Viewed recently","jql":"issuekey in issueHistory() order by lastViewed DESC","isSystem":true,"sharePermissions":[],"requiresLogin":false},{"id":-6,"name":"Created recently","jql":"created >= -1w order by created DESC","isSystem":true,"sharePermissions":[],"requiresLogin":false},{"id":-7,"name":"Resolved recently","jql":"resolutiondate >= -1w order by updated DESC","isSystem":true,"sharePermissions":[],"requiresLogin":false},{"id":-8,"name":"Updated recently","jql":"updated >= -1w order by updated DESC","isSystem":true,"sharePermissions":[],"requiresLogin":false}]
We have a testing results for this patch at perf cluster, many thanks to Nikitas.
Test 1
Test 2
Similar to test 1, but also queueing an additional 1,000,000 requests in the MDT, immediately after start of processing, measuring the time needed for the copytool to handle the first 1,000,000 requests.
The patch should offer a significant performance benefit compared to current 2.16