[ 
https://issues.apache.org/jira/browse/THRIFT-638?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13001374#comment-13001374
 ] 

Nicholas Telford commented on THRIFT-638:
-----------------------------------------

Another quick note: because readAll() loops until all the data has been read 
and socket timeouts are the idle time for a socket, the loop will execute for 
at most ($len * $recvTimeout) seconds.

If we want a timeout for the entire data chunk (i.e. for execution of the 
entire readAll() call) we will need to add some manual timing to readAll(). 
This doesn't just apply to TSocket, but any TTransport that has the same while 
(...) { $this->read(); } behaviour.

> BufferedTransport + C extensions block until recv timeout is reached on last 
> fread call
> ---------------------------------------------------------------------------------------
>
>                 Key: THRIFT-638
>                 URL: https://issues.apache.org/jira/browse/THRIFT-638
>             Project: Thrift
>          Issue Type: Bug
>          Components: PHP - Library
>    Affects Versions: 0.2
>            Reporter: Chris Goffinet
>             Fix For: 0.7
>
>         Attachments: 0001-Replace-freads-with-stream_socket_recvfrom.patch, 
> 0002-tocket-read-meta-data-check.diff, thrift-tsocket-638-0002.patch, 
> thrift-tsocket-638.patch
>
>
> I wanted to throw this out if any other folks experience this later on. At 
> Digg we've been using the BufferedTransport + C extension of Thrift in PHP. 
> Every so often, we will see spikes in latency increases on RPC calls that we 
> know have acceptable response times (<200ms). This seems to happen based on 
> how much data is being sent back over the wire. This is more of a PHP 
> problem, but can be corrected in Thrift's PHP library for folks who don't 
> want to upgrade PHP. I am still waiting to see if it's corrected in later 
> versions (we use 5.2.9).
> http://bonsai.php.net/bug.php?id=42720
> Replacing the fread statements in TSocket.php with stream_socket_recvfrom 
> correct this behavior so that calls do not wait until they hit the recv 
> timeout.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to