The standard thrift php client detects the problem by normal timeout which triggers a TException (Thrift Exception) which indicates that request timeouted, or the (in)famous "timed out reading 4 bytes from <host>". These errors are catched on my php wrapper [http://github.com/dynamoid/cassandra-utilities] and it retries the operation inside a while loop into another server. The timeout setting is provided by user, we are currently using one second, but we'll propably make it shorter in the future and increment the timeout for the request in case the request timeouted on first server and also by request type (get_slice takes longer than get_column)
- Juho Mäkinen On Tue, Sep 21, 2010 at 5:56 PM, Morten Wegelbye Nissen <m...@monit.dk> wrote: > On 21-09-2010 15:29, Juho Mäkinen wrote: >> >> It's known that compaction hurts the node performance so that it might >> miss some requests. That's why it's important to handle these >> situations and the client needs to retry the operation into another >> working host. We have been storing performance data from each >> cassandra request which we do into our five node cassandra production >> cluster. > > This is not the main topic of this mail, but, in what way do a client detect > the performance issue here? I guess that somehow the client does not get a > answer. > > ./Morten >