[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=29628&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-29628 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 23/Sep/16 17:56 Start Date: 23/Sep/16 17:56 Worklog Time Spent: 10m Work Description: Github user oknet closed the pull request at: https://github.com/apache/trafficserver/pull/771 Issue Time Tracking --- Worklog Id: (was: 29628) Time Spent: 5h 50m (was: 5h 40m) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 5h 50m > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=29624&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-29624 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 23/Sep/16 17:39 Start Date: 23/Sep/16 17:39 Worklog Time Spent: 10m Work Description: Github user atsci commented on the issue: https://github.com/apache/trafficserver/pull/771 Linux build *successful*! See https://ci.trafficserver.apache.org/job/Github-Linux/752/ for details. Issue Time Tracking --- Worklog Id: (was: 29624) Time Spent: 5h 40m (was: 5.5h) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 5h 40m > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=29623&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-29623 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 23/Sep/16 17:39 Start Date: 23/Sep/16 17:39 Worklog Time Spent: 10m Work Description: Github user atsci commented on the issue: https://github.com/apache/trafficserver/pull/771 FreeBSD build *successful*! See https://ci.trafficserver.apache.org/job/Github-FreeBSD/856/ for details. Issue Time Tracking --- Worklog Id: (was: 29623) Time Spent: 5.5h (was: 5h 20m) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 5.5h > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=29617&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-29617 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 23/Sep/16 16:48 Start Date: 23/Sep/16 16:48 Worklog Time Spent: 10m Work Description: Github user atsci commented on the issue: https://github.com/apache/trafficserver/pull/771 FreeBSD build *failed*! See https://ci.trafficserver.apache.org/job/Github-FreeBSD/855/ for details. Issue Time Tracking --- Worklog Id: (was: 29617) Time Spent: 5h 10m (was: 5h) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 5h 10m > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=29618&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-29618 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 23/Sep/16 16:48 Start Date: 23/Sep/16 16:48 Worklog Time Spent: 10m Work Description: Github user atsci commented on the issue: https://github.com/apache/trafficserver/pull/771 Linux build *failed*! See https://ci.trafficserver.apache.org/job/Github-Linux/751/ for details. Issue Time Tracking --- Worklog Id: (was: 29618) Time Spent: 5h 20m (was: 5h 10m) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 5h 20m > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=29616&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-29616 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 23/Sep/16 16:43 Start Date: 23/Sep/16 16:43 Worklog Time Spent: 10m Work Description: Github user atsci commented on the issue: https://github.com/apache/trafficserver/pull/771 FreeBSD build *failed*! See https://ci.trafficserver.apache.org/job/Github-FreeBSD/854/ for details. Issue Time Tracking --- Worklog Id: (was: 29616) Time Spent: 5h (was: 4h 50m) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 5h > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=29614&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-29614 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 23/Sep/16 16:38 Start Date: 23/Sep/16 16:38 Worklog Time Spent: 10m Work Description: Github user oknet commented on the issue: https://github.com/apache/trafficserver/pull/771 @jpeach @bryancall add comments and details in commit message ``` Load the NetVCs from open_list to cop_list before next InactivityCop runs. NetHandler will remove NetVC from cop_list if it is triggered. As the NetHandler runs, the number of NetVCs in the cop_list is decreasing. Lots of NetVCs will be removed from cop_list because the NetHandler runs 100 times maximum between InactivityCop runs. Therefore we don't have to check all the NetVCs as much as open_list. ``` Issue Time Tracking --- Worklog Id: (was: 29614) Time Spent: 4h 40m (was: 4.5h) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 4h 40m > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=29615&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-29615 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 23/Sep/16 16:38 Start Date: 23/Sep/16 16:38 Worklog Time Spent: 10m Work Description: Github user atsci commented on the issue: https://github.com/apache/trafficserver/pull/771 Linux build *failed*! See https://ci.trafficserver.apache.org/job/Github-Linux/750/ for details. Issue Time Tracking --- Worklog Id: (was: 29615) Time Spent: 4h 50m (was: 4h 40m) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 4h 50m > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=29514&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-29514 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 22/Sep/16 17:54 Start Date: 22/Sep/16 17:54 Worklog Time Spent: 10m Work Description: Github user jpeach commented on the issue: https://github.com/apache/trafficserver/pull/771 @oknet would you mind revising the commit subject and descripton? ``` TS-4612: Optimize InactivityCop. Longer description here. Capture the important points from this PR and from the Jira explanation. ``` Issue Time Tracking --- Worklog Id: (was: 29514) Time Spent: 4.5h (was: 4h 20m) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 4.5h > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=27333&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-27333 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 27/Aug/16 12:07 Start Date: 27/Aug/16 12:07 Worklog Time Spent: 10m Work Description: Github user oknet commented on the issue: https://github.com/apache/trafficserver/pull/771 rebased on master Issue Time Tracking --- Worklog Id: (was: 27333) Time Spent: 4h 20m (was: 4h 10m) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 4h 20m > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=27332&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-27332 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 27/Aug/16 11:59 Start Date: 27/Aug/16 11:59 Worklog Time Spent: 10m Work Description: Github user atsci commented on the issue: https://github.com/apache/trafficserver/pull/771 Linux build *successful*! See https://ci.trafficserver.apache.org/job/Github-Linux/528/ for details. Issue Time Tracking --- Worklog Id: (was: 27332) Time Spent: 4h 10m (was: 4h) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 4h 10m > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=27331&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-27331 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 27/Aug/16 11:53 Start Date: 27/Aug/16 11:53 Worklog Time Spent: 10m Work Description: Github user atsci commented on the issue: https://github.com/apache/trafficserver/pull/771 FreeBSD build *successful*! See https://ci.trafficserver.apache.org/job/Github-FreeBSD/632/ for details. Issue Time Tracking --- Worklog Id: (was: 27331) Time Spent: 4h (was: 3h 50m) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 4h > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=27330&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-27330 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 27/Aug/16 11:42 Start Date: 27/Aug/16 11:42 Worklog Time Spent: 10m Work Description: GitHub user oknet reopened a pull request: https://github.com/apache/trafficserver/pull/771 TS-4612: Proposal: InactivityCop Optimize Optimize InactivityCop on a heavy load and high level concurrent connection system. It is set default inactivity timeout before put vc into open_list. You can merge this pull request into a Git repository by running: $ git pull https://github.com/oknet/trafficserver TS-4612 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/trafficserver/pull/771.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 #771 commit b3441cfcc7dbabb22e01d437b5940f4b50f07691 Author: Oknet Xu Date: 2016-06-30T12:13:46Z Proposal: InactivityCop Optimize Issue Time Tracking --- Worklog Id: (was: 27330) Time Spent: 3h 50m (was: 3h 40m) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 3h 50m > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=27329&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-27329 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 27/Aug/16 11:35 Start Date: 27/Aug/16 11:35 Worklog Time Spent: 10m Work Description: Github user oknet closed the pull request at: https://github.com/apache/trafficserver/pull/771 Issue Time Tracking --- Worklog Id: (was: 27329) Time Spent: 3h 40m (was: 3.5h) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 3h 40m > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=26556&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-26556 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 18/Aug/16 00:28 Start Date: 18/Aug/16 00:28 Worklog Time Spent: 10m Work Description: Github user zwoop commented on the issue: https://github.com/apache/trafficserver/pull/771 Where are we with this? Ready to land? Issue Time Tracking --- Worklog Id: (was: 26556) Time Spent: 3.5h (was: 3h 20m) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 3.5h > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=26015&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-26015 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 26/Jul/16 16:26 Start Date: 26/Jul/16 16:26 Worklog Time Spent: 10m Work Description: Github user oknet commented on the issue: https://github.com/apache/trafficserver/pull/771 @bryancall to review the codes of ClusterHandlerBase.cc ``` 979 thread = eventProcessor.eventthread[ET_CLUSTER][id % num_of_cluster_threads]; 980 if (net_vc->thread == thread) { 981 cluster_connect_state = CLCON_CONN_BIND_OK; 982 break; 983 } else { 984 cluster_connect_state = ClusterHandler::CLCON_CONN_BIND_CLEAR; 985 } ``` From my understanding of the code, the codes from L1007 to L1033 means: 1. the net_vc bind to unmatched thread 2. It should unbind(L1012-1022) and then rebind(L1024-L1027) to another thread I think the unbind include remove vc from cop_list here. because the InactivityCop only push the vc->thread == this_ethread() into cop_list, but the vc->thread set to NULL in L1014. ``` // Copy the list and use pop() to catch any closes caused by callbacks. forl_LL(UnixNetVConnection, vc, nh.open_list) { if (vc->thread == this_ethread()) { nh.cop_list.push(vc); } } ``` Issue Time Tracking --- Worklog Id: (was: 26015) Time Spent: 3h 20m (was: 3h 10m) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 3h 20m > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=26009&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-26009 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 26/Jul/16 14:24 Start Date: 26/Jul/16 14:24 Worklog Time Spent: 10m Work Description: Github user bryancall commented on the issue: https://github.com/apache/trafficserver/pull/771 @oknet I don't think it is necessary to remove it from the cop_list, since it is currently not being removed from the list and it is checking the inactivity timeouts. I would leave it as is. Issue Time Tracking --- Worklog Id: (was: 26009) Time Spent: 3h 10m (was: 3h) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 3h 10m > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=25952&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-25952 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 23/Jul/16 13:25 Start Date: 23/Jul/16 13:25 Worklog Time Spent: 10m Work Description: Github user oknet commented on the issue: https://github.com/apache/trafficserver/pull/771 update iocore/cluster/ClusterHandlerBase.cc @bryancall @zwoop but I have no environment to perform cluster system test. Issue Time Tracking --- Worklog Id: (was: 25952) Time Spent: 3h (was: 2h 50m) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 3h > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=25951&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-25951 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 23/Jul/16 13:09 Start Date: 23/Jul/16 13:09 Worklog Time Spent: 10m Work Description: Github user oknet commented on the issue: https://github.com/apache/trafficserver/pull/771 @bryancall I'm found open_list also used in Cluster. file: iocore/cluster/ClusterHandlerBase.cc ``` 1007 case ClusterHandler::CLCON_CONN_BIND_CLEAR: { 1008 UnixNetVConnection *vc = (UnixNetVConnection *)net_vc; 1009 MUTEX_TRY_LOCK(lock, vc->nh->mutex, e->ethread); 1010 MUTEX_TRY_LOCK(lock1, vc->mutex, e->ethread); 1011 if (lock.is_locked() && lock1.is_locked()) { 1012 vc->ep.stop(); 1013 vc->nh->open_list.remove(vc); 1014 vc->thread = NULL; 1015 if (vc->nh->read_ready_list.in(vc)) 1016 vc->nh->read_ready_list.remove(vc); 1017 if (vc->nh->write_ready_list.in(vc)) 1018 vc->nh->write_ready_list.remove(vc); 1019 if (vc->read.in_enabled_list) 1020 vc->nh->read_enable_list.remove(vc); 1021 if (vc->write.in_enabled_list) 1022 vc->nh->write_enable_list.remove(vc); 1023 1024 // CLCON_CONN_BIND handle in bind vc->thread (bind thread nh) 1025 cluster_connect_state = ClusterHandler::CLCON_CONN_BIND; 1026 thread->schedule_in(this, CLUSTER_PERIOD); 1027 return EVENT_DONE; 1028 } else { 1029 // CLCON_CONN_BIND_CLEAR handle in origin vc->thread (origin thread nh) 1030 vc->thread->schedule_in(this, CLUSTER_PERIOD); 1031 return EVENT_DONE; 1032 } 1033 } ``` Is there have InactivityCop for Cluster? I am not familiar with the cluster. I'm should add "vc->nh->cop_list.remove(vc);" after Line 1013 if yes. Issue Time Tracking --- Worklog Id: (was: 25951) Time Spent: 2h 50m (was: 2h 40m) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 2h 50m > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=25950&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-25950 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 23/Jul/16 13:08 Start Date: 23/Jul/16 13:08 Worklog Time Spent: 10m Work Description: Github user atsci commented on the issue: https://github.com/apache/trafficserver/pull/771 Linux build *successful*! See https://ci.trafficserver.apache.org/job/Github-Linux/372/ for details. Issue Time Tracking --- Worklog Id: (was: 25950) Time Spent: 2h 40m (was: 2.5h) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 2h 40m > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=25949&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-25949 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 23/Jul/16 13:08 Start Date: 23/Jul/16 13:08 Worklog Time Spent: 10m Work Description: Github user atsci commented on the issue: https://github.com/apache/trafficserver/pull/771 FreeBSD build *successful*! See https://ci.trafficserver.apache.org/job/Github-FreeBSD/475/ for details. Issue Time Tracking --- Worklog Id: (was: 25949) Time Spent: 2.5h (was: 2h 20m) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 2.5h > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=25948&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-25948 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 23/Jul/16 12:57 Start Date: 23/Jul/16 12:57 Worklog Time Spent: 10m Work Description: Github user oknet commented on a diff in the pull request: https://github.com/apache/trafficserver/pull/771#discussion_r71972136 --- Diff: iocore/net/UnixNet.cc --- @@ -465,6 +433,9 @@ NetHandler::mainNetEvent(int event, Event *e) epd = (EventIO *)get_ev_data(pd, x); if (epd->type == EVENTIO_READWRITE_VC) { vc = epd->data.vc; + if (cop_list.in(vc)) { +cop_list.remove(vc); + } --- End diff -- No bug and no issue here, the PR is only used to optimize InactivityCop. Currently, I have no exactly numbers about this change, but the max concurrent connections test has been in the plan. Issue Time Tracking --- Worklog Id: (was: 25948) Time Spent: 2h 20m (was: 2h 10m) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 2h 20m > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=25947&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-25947 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 23/Jul/16 12:56 Start Date: 23/Jul/16 12:56 Worklog Time Spent: 10m Work Description: Github user zwoop commented on the issue: https://github.com/apache/trafficserver/pull/771 [approve ci] Issue Time Tracking --- Worklog Id: (was: 25947) Time Spent: 2h 10m (was: 2h) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 2h 10m > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=25946&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-25946 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 23/Jul/16 12:39 Start Date: 23/Jul/16 12:39 Worklog Time Spent: 10m Work Description: Github user oknet commented on the issue: https://github.com/apache/trafficserver/pull/771 clang-format is done. Issue Time Tracking --- Worklog Id: (was: 25946) Time Spent: 2h (was: 1h 50m) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 2h > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=25878&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-25878 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 22/Jul/16 10:54 Start Date: 22/Jul/16 10:54 Worklog Time Spent: 10m Work Description: Github user bryancall commented on the issue: https://github.com/apache/trafficserver/pull/771 @zwoop Yes, this should be merged after the clang-format. Issue Time Tracking --- Worklog Id: (was: 25878) Time Spent: 1h 50m (was: 1h 40m) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 1h 50m > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=25827&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-25827 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 21/Jul/16 18:40 Start Date: 21/Jul/16 18:40 Worklog Time Spent: 10m Work Description: Github user atsci commented on the issue: https://github.com/apache/trafficserver/pull/771 FreeBSD build *successful*! See https://ci.trafficserver.apache.org/job/Github-FreeBSD/470/ for details. Issue Time Tracking --- Worklog Id: (was: 25827) Time Spent: 1h 40m (was: 1.5h) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 1h 40m > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=25824&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-25824 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 21/Jul/16 18:33 Start Date: 21/Jul/16 18:33 Worklog Time Spent: 10m Work Description: Github user atsci commented on the issue: https://github.com/apache/trafficserver/pull/771 Linux build *failed*! See https://ci.trafficserver.apache.org/job/Github-Linux/367/ for details. Issue Time Tracking --- Worklog Id: (was: 25824) Time Spent: 1h 20m (was: 1h 10m) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 1h 20m > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=25825&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-25825 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 21/Jul/16 18:34 Start Date: 21/Jul/16 18:34 Worklog Time Spent: 10m Work Description: Github user zwoop commented on the issue: https://github.com/apache/trafficserver/pull/771 @oknet This fails on the clang-format, can you please fix and push an update? Issue Time Tracking --- Worklog Id: (was: 25825) Time Spent: 1.5h (was: 1h 20m) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 1.5h > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=25823&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-25823 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 21/Jul/16 18:29 Start Date: 21/Jul/16 18:29 Worklog Time Spent: 10m Work Description: Github user zwoop commented on the issue: https://github.com/apache/trafficserver/pull/771 @bryancall Should we merge this? [approve ci]. Issue Time Tracking --- Worklog Id: (was: 25823) Time Spent: 1h 10m (was: 1h) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 1h 10m > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=25748&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-25748 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 20/Jul/16 12:09 Start Date: 20/Jul/16 12:09 Worklog Time Spent: 10m Work Description: Github user bryancall commented on a diff in the pull request: https://github.com/apache/trafficserver/pull/771#discussion_r71512654 --- Diff: iocore/net/UnixNet.cc --- @@ -465,6 +433,9 @@ NetHandler::mainNetEvent(int event, Event *e) epd = (EventIO *)get_ev_data(pd, x); if (epd->type == EVENTIO_READWRITE_VC) { vc = epd->data.vc; + if (cop_list.in(vc)) { +cop_list.remove(vc); + } --- End diff -- Thank you for the clarification. I am good with the changes. Do you have any numbers around this change and the benefits? There will be changes to the scheduler and the frequency maybe more than that in the future. I don't see that as an issue. Issue Time Tracking --- Worklog Id: (was: 25748) Time Spent: 1h (was: 50m) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 1h > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=25744&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-25744 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 20/Jul/16 09:11 Start Date: 20/Jul/16 09:11 Worklog Time Spent: 10m Work Description: Github user oknet commented on a diff in the pull request: https://github.com/apache/trafficserver/pull/771#discussion_r71490427 --- Diff: iocore/net/UnixNet.cc --- @@ -465,6 +433,9 @@ NetHandler::mainNetEvent(int event, Event *e) epd = (EventIO *)get_ev_data(pd, x); if (epd->type == EVENTIO_READWRITE_VC) { vc = epd->data.vc; + if (cop_list.in(vc)) { +cop_list.remove(vc); + } --- End diff -- NetHandler runs per 10ms,InactivityCop runs per 1s. NetHandler runs 100 times between InactivityCop. Issue Time Tracking --- Worklog Id: (was: 25744) Time Spent: 50m (was: 40m) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 50m > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=25743&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-25743 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 20/Jul/16 09:08 Start Date: 20/Jul/16 09:08 Worklog Time Spent: 10m Work Description: Github user bryancall commented on a diff in the pull request: https://github.com/apache/trafficserver/pull/771#discussion_r71490006 --- Diff: iocore/net/UnixNet.cc --- @@ -465,6 +433,9 @@ NetHandler::mainNetEvent(int event, Event *e) epd = (EventIO *)get_ev_data(pd, x); if (epd->type == EVENTIO_READWRITE_VC) { vc = epd->data.vc; + if (cop_list.in(vc)) { +cop_list.remove(vc); + } --- End diff -- What do you mean by "running 100 times"? Issue Time Tracking --- Worklog Id: (was: 25743) Time Spent: 40m (was: 0.5h) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 40m > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=25679&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-25679 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 19/Jul/16 08:48 Start Date: 19/Jul/16 08:48 Worklog Time Spent: 10m Work Description: Github user oknet commented on a diff in the pull request: https://github.com/apache/trafficserver/pull/771#discussion_r71296490 --- Diff: iocore/net/UnixNet.cc --- @@ -465,6 +433,9 @@ NetHandler::mainNetEvent(int event, Event *e) epd = (EventIO *)get_ev_data(pd, x); if (epd->type == EVENTIO_READWRITE_VC) { vc = epd->data.vc; + if (cop_list.in(vc)) { +cop_list.remove(vc); + } --- End diff -- Step 1. put all vc in open_list into cop_list. Step 2. remove vc from cop_list if it has READ/WRITE event. (running 100 times) Step 3. call check_inactivity() to processing cop_list. Step 4. go to step 1. Issue Time Tracking --- Worklog Id: (was: 25679) Time Spent: 0.5h (was: 20m) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 0.5h > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=25678&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-25678 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 19/Jul/16 08:38 Start Date: 19/Jul/16 08:38 Worklog Time Spent: 10m Work Description: Github user bryancall commented on a diff in the pull request: https://github.com/apache/trafficserver/pull/771#discussion_r71293917 --- Diff: iocore/net/UnixNet.cc --- @@ -465,6 +433,9 @@ NetHandler::mainNetEvent(int event, Event *e) epd = (EventIO *)get_ev_data(pd, x); if (epd->type == EVENTIO_READWRITE_VC) { vc = epd->data.vc; + if (cop_list.in(vc)) { +cop_list.remove(vc); + } --- End diff -- I don't see how this would be used. Issue Time Tracking --- Worklog Id: (was: 25678) Time Spent: 20m (was: 10m) > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 20m > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Work logged] (TS-4612) Proposal: InactivityCop Optimize
[ https://issues.apache.org/jira/browse/TS-4612?focusedWorklogId=25677&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-25677 ] ASF GitHub Bot logged work on TS-4612: -- Author: ASF GitHub Bot Created on: 19/Jul/16 08:34 Start Date: 19/Jul/16 08:34 Worklog Time Spent: 10m Work Description: Github user bryancall commented on a diff in the pull request: https://github.com/apache/trafficserver/pull/771#discussion_r71292554 --- Diff: iocore/net/UnixNetVConnection.cc --- @@ -1304,9 +1305,10 @@ UnixNetVConnection::connectUp(EThread *t, int fd) SET_HANDLER(&UnixNetVConnection::mainEvent); nh = get_NetHandler(t); + set_inactivity_timeout(0); nh->open_list.enqueue(this); - ink_assert(!inactivity_timeout_in); + // ink_assert(!inactivity_timeout_in); --- End diff -- This can be removed. Issue Time Tracking --- Worklog Id: (was: 25677) Time Spent: 10m Remaining Estimate: 0h > Proposal: InactivityCop Optimize > > > Key: TS-4612 > URL: https://issues.apache.org/jira/browse/TS-4612 > Project: Traffic Server > Issue Type: Bug > Components: Core, Network >Reporter: Oknet Xu > Fix For: sometime > > Time Spent: 10m > Remaining Estimate: 0h > > By review the processing of InactivityCop::check_inactivity(): > 1. get all local vc from open_list > 2. put them into cop_list > 3. check every vc in cop_list if it is already timeouted > 4. callback vc->handleEvent to close vc if it is timeout > InactivityCop and NetHandler share one mutex. > InactivityCop runs every second, NetHandler runs every 10ms, that means > Nethandler runs 100 times until next InactivityCop runs. > if one vc has read/write in a Nethandler call, it is won't be timeout in the > next InactivityCop run. > Thus, if the vc has read/write in Nethandler, we move it out of cop-list then > the InactivityCop runs would get better performace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)