Hey Todd, This is all happening on a single machine. I'll post more detailed timing information when I get a chance.
- Doug On Tue, May 11, 2010 at 8:36 PM, Todd Lipcon <[email protected]> wrote: > 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 <[email protected]> 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 >
