multiget_slice() calls using TBinaryProtocolAccelerated always take up to the 
TSocket->recvTimeout before returning results
---------------------------------------------------------------------------------------------------------------------------

                 Key: CASSANDRA-1199
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1199
             Project: Cassandra
          Issue Type: Bug
    Affects Versions: 0.7
         Environment: CentOS 5.2
Cassandra Nightly Build June 11th
Thrift Trunc
Using TBinaryProtocolAccelerated only!

            Reporter: Arya Goudarzi


I am comparing the following 
   - Reading of 100 SuperColumns in 1 SCF row using multiget_slice() with 1 key 
and 1 column name in 100 loop iterations
   - Reading of 100 SuperColumns in 1 SCF row using multiget_slice() with 1 key 
and 100 column names in a single call

I always get a consistent result and that is the single call takes more time 
then 100 calls. After some investigation, it seamed that the time it took to 
execute multiget_slice with 100 columns is always close to the 
TSocket->recvTimeout, Increasing the recvTimeout results that call to take that 
much time before retuning. After digged into TSocket->read (TSocket.php line 
261) and looking at some of the meta data of fread, it seams that none of the 
buffer chunks get the eof flag=1. And the stream waits till timeout has 
reached. 

This only happens if TBinaryProtocolAccelerated (thrift_protocol.so) is used. 

I have attached my code to reproduce this issue. You can set the timeouts to 
see how it affects the read call in multiget_slice.

Please investigate and move to Thrift if not a Cassandra interface issue.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to