Clients using pqlib can get some boost by increasing tcp/ip window size. It might be good to make it a settable parameter.
Anyway, maybe something like this: /* ---------- * connectNoDelay - * Sets the TCP_NODELAY socket option. * Returns 1 if successful, 0 if not. * ---------- */ static int connectNoDelay(PGconn *conn) { int on = 1; #ifdef TCP_NODELAY if (setsockopt(conn->sock, IPPROTO_TCP, TCP_NODELAY, (char *) &on, sizeof(on)) < 0) { char sebuf[256]; printfPQExpBuffer(&conn->errorMessage, libpq_gettext("could not set socket to TCP no delay mode: %s\n"), SOCK_STRERROR(SOCK_ERRNO, sebuf, sizeof(sebuf))); return 0; } #endif on = 65535; if (setsockopt(conn->sock, SOL_SOCKET, SO_RCVBUF, (char *) &on, sizeof(on)) < 0) { printfPQExpBuffer(&conn->errorMessage, "connectNoDelay() -- setsockopt SO_RCVBUF failed: errno=%d\n%s\n", errno, strerror(errno)); #ifdef WIN32 printf("Winsock error: %i\n", WSAGetLastError()); #endif return 0; } on = 65535; if (setsockopt(conn->sock, SOL_SOCKET, SO_SNDBUF, (char *) &on, sizeof(on)) < 0) { printfPQExpBuffer(&conn->errorMessage, "connectNoDelay() -- setsockopt SO_SNDBUF failed: errno=%d\n%s\n", errno, strerror(errno)); #ifdef WIN32 printf("Winsock error: %i\n", WSAGetLastError()); #endif return 0; } return 1; }