thrift-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alex <alex...@gmail.com>
Subject Thrift stress testing
Date Sat, 16 Apr 2011 15:18:39 GMT
Hi. I have written a service for Thrift in Ruby, and I am interested in
stress testing it. I am using nonblocking sockets, framed transport,
and the binary protocol. I have written a client application which
performs three operations in an infinite loop: begin, move, commit. The
purpose of this test is to not only test how Thrift holds up, but to
test if my service properly handles conflicts when two or more clients
access the same database key at the same time.

I ran four test clients simultaneously and the results were promising.
The service handled the conflicts properly, and it seemed like these
clients could do this forever. However, I ran in to a problem at the
conclusion of the test.

When I killed one of the clients, all clients were disconnected,
printing out the following error:

/usr/local/lib/ruby/gems/1.9/gems/thrift-0.6.0/lib/thrift/transport/socket.rb:109:in
`read': Socket: Timed out reading 4 bytes from 127.0.0.1:2000
(Thrift::TransportException)

When attempting to reconnect to the server, the connection fails with
the above message. The server must be killed and restarted in order for
it to accept new connections. Does anyone know what could be going on
here?

Thank you.

-- 
Alex

Mime
View raw message