[
https://issues.apache.org/jira/browse/TS-4485?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15301566#comment-15301566
]
ASF GitHub Bot commented on TS-4485:
------------------------------------
GitHub user jacksontj opened a pull request:
https://github.com/apache/trafficserver/pull/670
TS-4485 schedule HostDBSyncer in ET_TASK threads instead of ET_NET threads
Since the syncer is on ET_NET threads this effectively means every sync
interval an ET_NET thread is blocked however long it takes to msync() your
partition to disk (meaning we are doing blocking IO in the ET_NET threads!!!).
What I'm seeing is in-flight requests and intercepts are stalled out
waiting on the ET_NET. This simply schedules the syncer on an ET_TASK thread,
although this make make syncs to disk slower (waiting longer on the lock) it
will mean we don't have to stall 1/nth of ET_NET threads waiting on a disk.
cc @SolidWallOfCode
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/jacksontj/trafficserver TS-4485
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/trafficserver/pull/670.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 #670
----
commit be315479d3d33d7452a90ecc1aa2f9f7664d443d
Author: Thomas Jackson <[email protected]>
Date: 2016-05-26T05:36:21Z
TS-4485 schedule HostDBSyncer in ET_TASK threads instead of ET_NET threads
----
> MultiCache sync causes significant stalls to various in-flight requests
> -----------------------------------------------------------------------
>
> Key: TS-4485
> URL: https://issues.apache.org/jira/browse/TS-4485
> Project: Traffic Server
> Issue Type: Bug
> Reporter: Thomas Jackson
>
> MultiCache's sync to disk currently schedules the syncer task on the ET_NET
> thread that is holding the lock for the partition of hostdb. This is a bit
> unfortunate, as the syncer will actually call `msync` which means its calling
> a blocking write to disk. I'm seeing this cause some fairly large latency
> spikes (~100-300ms) on occasion-- even though the disk IO is completely
> available (since the ET_NET thread gets stalled the entire time, IO that
> needs to happen is also stalled).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)