Thread: Async Query Processing on Solaris

Async Query Processing on Solaris

From
"Passynkov, Vadim"
Date:
I am using Asynchronous Query Processing interface from libpq library.
And I got some strange results on Solaris

My test select query is 'SELECT * from pg_user;'
and I use select system synchronous I/O multiplexer in 'C'

The first test sends 10000 select queries using 10 nonblocking connections
to database ( PQsendQuery ).
The second test sends the same 10000 select queries using 1 connection (
PQexec ).

On FreeBSD there is a huge difference between the async and the sync tests.
The async test is much faster than sync test.
On Solaris there is no speed difference between async and sync test,
actually async test is even slower than sync test.

Q. Why ?

On FreeBSD:

/usr/bin/time ./PgAsyncManager async
async test start ... 10000  done
9.46 real         3.48 user         1.25 sys

/usr/bin/time ./PgAsyncManager sync
sync test start ... 10000  done
22.64 real         3.35 user         1.24 sys

On Solaris:

/usr/bin/time ./PgAsyncManager async
async test start ... 10000  done

real       20.6
user        2.1
sys         0.4

/usr/bin/time ./PgAsyncManager sync
sync test start ... 10000  done

real       18.4
user        1.1
sys         0.5