Re: ODBC driver over network very slow

From: "Kevin Grittner" <Kevin(dot)Grittner(at)wicourts(dot)gov>
To: <merlin(dot)moncure(at)rcsonline(dot)com>, <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: <pgsql-performance(at)postgresql(dot)org>, <milan(at)sde(dot)cz>
Subject: Re: ODBC driver over network very slow
Date: 2005-06-30 14:47:19
Message-ID: s2c3bfad.057@gwmta.wicourts.gov
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

I was hesitant to jump in on this because I am new to PostgreSQL and
haven't seen this problem with _it_, but I have seen this with the
Sybase database products. You can configure Sybase to disable the Nagle
algorithm. If you don't, any query which returns rows too big to fit in
their network buffer will be painfully slow. Increasing the buffer size
can help with an individual query, but it just reduces the scope of the
problem. What you really want to do is make sure that TCP_NODELAY is
set for the connection, to disable the Nagle algorithm; it just doesn't
seem to be appropriate for returning query results.

How this issue comes into play in PostgreSQL is beyond my ken, but
hopefully this observation is helpful to someone.

-Kevin


>>> "Merlin Moncure" <merlin(dot)moncure(at)rcsonline(dot)com> 06/30/05 9:10 AM >>>

> My collegue spent some time to dig the following case and it
> looks like
> Nagle algorithm and delayed ACKs related problem.
> In psqlodbc.h
> #define SOCK_BUFFER_SIZE 4096
>
> I changed that value to 8192 and driver works fine for me.
> I am not sure why this change helps.

Err, no neither am I. Why do you think it's got something to do with
Nagle/delayed ACKs?

Browse pgsql-performance by date

  From Date Subject
Next Message Jean-Max Reymond 2005-06-30 15:42:06 start time very high
Previous Message Merlin Moncure 2005-06-30 14:10:25 Re: ODBC driver over network very slow