> > Sorry for the confusion because Rod asked a question > > and I answered too quickly. This is what I mean. > > > > 15x Slower: > > ----------- > > Client <--TCP--> PgPool <--UNIX--> PostgreSQL > > Client <--TCP--> PgPool <--TCP--> PostgreSQL > > > > 5x Faster: > > ---------- > > Client <--UNIX--> PgPool <--UNIX--> PostgreSQL > > Client <--UNIX--> PgPool <--TCP--> PostgreSQL > > > > > > Hope this helps! Pgpool speeds up connection time by > > 5x with UNIX socket due to pre-fork and connection > > pooling. However, pgpool slows down by 15x under TCP > > socket for some unknown reason. > > It appeared that the cause of TCP socket slowness was in reading the > startup packet which is performed by read_startup_packet(). I did some > measurement for the function and it showed huge difference between > UNIX and TCP sockets. Times (in micro sec) for 100 call to > read_startup_packet() are: > > UNIX socket: 623 > TCP socket: 6086 > > As you can see TCP is nearly 10 times slower than UNIX socket. In the > function there are 2 read()s to process the startup packet. I think I > could enhance pool_read() so that it reduces the call to read() as > little as possible...
I think I have improved the TCP performance of pgpool. With my quick testing, in the follwing case pgpool is at least as fast as PostgreSQL(client directly connected to PostgreSQL). > > 15x Slower: > > ----------- > > Client <--TCP--> PgPool <--UNIX--> PostgreSQL > > Client <--TCP--> PgPool <--TCP--> PostgreSQL The latest version can be obtained from: http://www2b.biglobe.ne.jp/~caco/pgpool/pgpool-1.2.2.tar.gz -- Tatsuo Ishii ---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives? http://archives.postgresql.org