[ 
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)

Reply via email to