Hey Doug, Maybe TCP slow start? What's the latency between the client and server?
-Todd On Tue, May 11, 2010 at 8:27 PM, Doug Judd <d...@hypertable.com> wrote: > I'm noticing some additional latency on the first thrift method call that > involves a data transfer. The method has the following prototype: > > typedef list<string> CellAsArray > list<CellAsArray> next_cells_as_arrays(1:Scanner scanner) > throws (1:ClientException e), > > The client is written in Java and calls this method four times. Each call > returns roughly the same amount of data (~500K) and they all take about > 30ms > except for the first call which takes approximately 170ms. If I re-order > the requests, I see the same latency pattern, the first request is always > about 170ms. I've instrumented the client and the server and have ruled > out > the application. It appears that the additional latency is incurred when > the results for next_cells_as_arrays() are sent back from the thrift server > to the client. The problem isn't with the first Thrift method call, > because > there are a couple of methods that are called prior to the offending call, > including: > > Scanner open_scanner(1:string name, 2:ScanSpec scan_spec, > 3:bool retry_table_not_found = 0) > throws (1:ClientException e), > > Any ideas what might be causing this? > > - Doug > -- Todd Lipcon Software Engineer, Cloudera