5 ms·
PostgresSQL's libpq supports nonblocking asynchronous operation, and node-postgres takes advantage of that. http://www.postgresql.org/docs/9.1/static/libpq-asy
by d503 14y ago
PostgresSQL's libpq supports nonblocking asynchronous operation, and node-postgres takes advantage of that.
http://www.postgresql.org/docs/9.1/static/libpq-async.html http://www.postgresql.org/docs/9.1/static/libpq-async.html
https://github.com/brianc/node-postgres/blob/master/src/binding.cc https://github.com/brianc/node-postgres/blob/master/src/bind...
(notice the Connect method on line 325 of binding.cc)
At some level a client-server database driver isn't all that different from any other network client; you send a request over a socket and wait for a result. There's no reason you have to block while waiting.
Moreover some databases (like Postgres) let you receive asynchronous notifications signaled by transactions on other connections; that's how trigger-based replication systems like Bucardo do their thing.
http://www.postgresql.org/docs/9.1/static/sql-notify.html http://www.postgresql.org/docs/9.1/static/sql-notify.html