Sounds like https://issues.apache.org/jira/browse/THRIFT-638, where
Arya Goudarzi posted a patch.

On Tue, Aug 3, 2010 at 5:18 AM, Dave Gardner <dave.gard...@imagini.net> wrote:
> Hi all
>
> I'm working on a PHP/Cassandra application. Yesterday we experienced a
> strange situation when testing random reads. The background to this test was
> that we inserted 10,000 rows with simple row keys. The number of columns in
> each row varies between about 5 columns and 40 columns (all random).  Insert
> speed via the PHP Thrift library was good - very fast.
>
> With our random read script, we are simply carrying out a get_slice on a
> specific row key to fetch all the columns in the row (up to 100, which is
> always everything).
>
> The random read script either completes in a few ms, or it takes around 5s.
> The significance of 5s is that this is (temporarily) what we've set the
> socket read timeout to (TSocket::setRecvTimeout). There are a couple of
> interesting things to note:
>
> 1. Even when the socket seemingly times out, the result of the operation is
> successful - eg: we do end up with a row returned.
> 2. The slow response times are *always* for rows with a larger number of
> columns; the limit seems to be around 9 columns or so
> 3. If we up the timeout to 10s, the reads take 10s instead of 5s, but still
> return successfully
>
> This is an example of data from a row that is read quickly
>
> 9bc905c5-fc62-58de-87f5-48eb1ebb4f03
>     col0: e0ce34010211030d91331feefc946c8c
>     col1: 6d97b892ee7773d40b7bbff27ec5b34d
>     col2: 6e2394dd48d5ca2df47eeceb72ca9de0
>     col3: 43fca4716b865f24e30de67b2e10c1a8
>     col4: c2e8de1541550e78829d312609acd237
>     col5: e458447d8a2987bf05d65bee0a103be8
>     col6: 0a8a86de4247b690e765aeca6615aef8
>     col7: dc48b5e996da86b94d40d85292351c61
>     col8: 3b95f9fc7c64d021ecc2c7a013f2e132
>     key: 9bc905c5-fc62-58de-87f5-48eb1ebb4f03
>
> This is an example of data from a row that is read slowly:
>
> 7318f337-529d-5408-a7c8-1283b750164d
>     col0: 113b9cfe8eea8bf7eca71ce1ca1b0913
>     col1: 428fe0bfadf687ef3b5c532e98e487ef
>     col10: f1e80507626223358414130b1c7ecacd
>     col11: cf7ada7ab098d2aeb9e5553808c89044
>     col12: a93237313167c313d36d39779dcf23cd
>     col13: 609595bbbb2b7058ad3f97f1ea0b7ebd
>     col2: 27eca7dbff849eac82dc32e92b3fe977
>     col3: 294dbf3107c351783a69450fedbefc61
>     col4: 7fbd8f20d52731a10029e6f92874fae5
>     col5: 3d06fc491c8f1669b144b798155578d4
>     col6: 60d8f358cf07924912c8e19c60f45aac
>     col7: 03297fd9576c1c96586bbbaaeaa1aa64
>     col8: 6d6383fba84a6ec6811d96aee2b39102
>     col9: c937171c3ad5d30b671d72741a777dc7
>     key: 7318f337-529d-5408-a7c8-1283b750164d
>
> Other points:
>
> - we are reading with CL:One
> - we are using the PHP Thrift library directly
> - we are using:
>    TSocket
>    TBufferedTransport                  [with buffer sizes of 1024, 1024]
>    TBinaryProtocolAccelerated
>
> I have just this second discovered that changing the buffer sizes impacts
> this issue. Reducing the buffer size makes every request take 5s, increasing
> the buffer size makes every request execute quickly.
>
> I will continue to debug this issue today, but thought that someone may be
> able to shed some light on the issue.
>
> Thanks!
>
> Dave
>



-- 
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder of Riptano, the source for professional Cassandra support
http://riptano.com

Reply via email to