Anyone run into any unusual performance problems when using SSL with a "db/postgresql" connection, or have ideas why that might happen?

Reason I ask is that a particular large Racket installation has reported a problem, and I have only a few guesses as to why. This installation has two libraries for accessing PostgreSQL: an old one using a C extension and "libpq", and a drop-in replacement that layers over the Racket "db" library. When SSL is not used, the new library gives vastly better performance under load, perhaps due mostly to no C mutual exclusion bottleneck when handling concurrent connections. However, when the connections are SSL'd, the relative performance difference becomes reversed, and the old library with "libpq" C extension library becomes much faster than the one using Racket "db". The SSL protocol versions should be the same.

Assuming that the performance difference is not due to a configuration difference or experimental error... my first guess would be a huge latency difference, such as if "libpq" were flushing I/O and padding encryption blocks much more aggressively. I'm also suddenly wondering whether Racket calling out to OpenSSL re-creates the C mutual exclusion bottleneck that we went to some trouble to get rid of.

As a backup option, I'm considering using SSL tunnels as separate Linux processes, but there are reasons we'd like to avoid that if there is a reasonable solution to the SSL performance in Racket.

Neil V.

____________________
 Racket Users list:
 http://lists.racket-lang.org/users

Reply via email to