[
https://issues.apache.org/jira/browse/TS-3401?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14333769#comment-14333769
]
Brian Geffon commented on TS-3401:
----------------------------------
After looking into this issue with [~amc] the blocking is actually required.
After more digging it appears the only place that does an
{{AIO_CALLBACK_THREAD_AIO}} is in CacheWrite.cc in {{aggWrite()}}. There is a
comment that states:
{code}
/*
Callback on AIO thread so that we can issue a new write ASAP
as all writes are serialized in the volume. This is not necessary
for reads proceed independently.
*/
{code}
Because the offsets are calculated before hand the writes must be serialized.
Thus we cannot reschedule the writes. I'll close this as NOT A BUG.
> AIO blocks under lock contention
> --------------------------------
>
> Key: TS-3401
> URL: https://issues.apache.org/jira/browse/TS-3401
> Project: Traffic Server
> Issue Type: Bug
> Components: Core
> Reporter: Brian Geffon
> Assignee: Brian Geffon
> Attachments: aio.patch
>
>
> In {{aio_thread_main()}} while trying to process AIO ops the AIO thread will
> wait on the mutex for the op which obviously blocks other AIO ops from
> processing. We should use a try lock instead and reschedule the ops that we
> couldn't immediately process. Patch attached. Waiting for reviews.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)