You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Nicholas Telford (JIRA)" <ji...@apache.org> on 2011/03/01 19:26:37 UTC

[jira] Updated: (THRIFT-638) BufferedTransport + C extensions block until recv timeout is reached on last fread call

     [ https://issues.apache.org/jira/browse/THRIFT-638?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nicholas Telford updated THRIFT-638:
------------------------------------

    Attachment: thrift-tsocket-638.patch

Patch with the following changes to PHP's TSocket:
 * All reads now done with the unbuffered stream_socket_recv()
 * All writes now done with the unbuffered stream_socket_sendto()
 * Reverted patch to THRIFT-347 that broken reporting of timeouts.
 * Changes TSocket::flush() to be a no-op as PHP is no longer buffering data.

> 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.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