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

Reply via email to