Re: get_slice sometimes returns previous result on php

2010-08-31 Thread Juho Mäkinen
I've resolved this bug to be within my own php client wrapper and thus
not in Cassandra (great to know :).
The bug was that upon TException from get_slice the client code didn't
correctly close the socket but instead kept using it.
This resulted that the timeouted response was eventually delivered
into the socket and thus next get_slice operation got this delayed
data instead of the expected data.

I published my client libraries earlier in another message and I've
also uploaded them into github:
http://github.com/dynamoid/cassandra-utilities

Thanks Benjamin for your input on the subject :)

 - Juho Mäkinen

On Mon, Aug 30, 2010 at 11:15 PM, Juho Mäkinen juho.maki...@gmail.com wrote:
 I'm not using connection poolin where the same tcp socket is used
 between different php requests. I open a new thrift connection with
 new socket to the node and I use the node through the request and I
 close it after. The get_slice requests are all happening in the same
 request, so something odd happens in the between.

 Tomorrow I'm going to implement a history buffer which logs all
 cassandra operations within the php request and logs it out in case I
 detect this anomaly again. Hopefully that gives some light to the
 problem.

  - Juho Mäkinen

 On Mon, Aug 30, 2010 at 10:50 PM, Benjamin Black b...@b3k.us wrote:
 On Mon, Aug 30, 2010 at 6:05 AM, Juho Mäkinen juho.maki...@gmail.com wrote:
 The application is using the
 same cassandra thrift connection (it doesn't close it in between) and
 everything is happening inside same php process.


 This is why you are seeing this problem (and is specific to connection
 reuse in certain languages, not a general problem with connection
 reuse).


 b




Re: get_slice sometimes returns previous result on php

2010-08-30 Thread Benjamin Black
On Mon, Aug 30, 2010 at 6:05 AM, Juho Mäkinen juho.maki...@gmail.com wrote:
 The application is using the
 same cassandra thrift connection (it doesn't close it in between) and
 everything is happening inside same php process.


This is why you are seeing this problem (and is specific to connection
reuse in certain languages, not a general problem with connection
reuse).


b


Re: get_slice sometimes returns previous result on php

2010-08-30 Thread Juho Mäkinen
I'm not using connection poolin where the same tcp socket is used
between different php requests. I open a new thrift connection with
new socket to the node and I use the node through the request and I
close it after. The get_slice requests are all happening in the same
request, so something odd happens in the between.

Tomorrow I'm going to implement a history buffer which logs all
cassandra operations within the php request and logs it out in case I
detect this anomaly again. Hopefully that gives some light to the
problem.

 - Juho Mäkinen

On Mon, Aug 30, 2010 at 10:50 PM, Benjamin Black b...@b3k.us wrote:
 On Mon, Aug 30, 2010 at 6:05 AM, Juho Mäkinen juho.maki...@gmail.com wrote:
 The application is using the
 same cassandra thrift connection (it doesn't close it in between) and
 everything is happening inside same php process.


 This is why you are seeing this problem (and is specific to connection
 reuse in certain languages, not a general problem with connection
 reuse).


 b