4 — количество потоков в I/O пуле Node. Так что нужно стараться добиться ускорения больше, чем в 4 раза. Иначе может оказаться проще запустить 4 синхронных процесса Node c балансировкой.
Я вот сейчас подумал, что из-за этих 4 потоков в пуле, количество одновременно идущих запросов к базе и ограничено цифрой 4. С другой стороны в тестовом окружении 4 ядерный процессор — боюсь, большего ускорения я все равно не получу. Надо ускорять сервер БД и «хачить» пул ноды.
Решил использовать ваш модуль и наткнулся на особенность:
При возникновении ошибки, например в методе query(), в callback не возвращается ошибка.
Вместо этого происходит исключение, и скрипт заканчивает работу.
Скрипт работает под Windows.
Я думал, что ошибка будет в параметре err функции callback. Или это не так?
Глянул. Это не ошибка. Просто сначала объект connection вызывает событие 'error' и, если никто на него не подписан, то происходит Exception. Я добавлю проверку на подписантов. Обойти это можно задав пустой обработчик события errror для connection.
Sync vs Async на примере Firebird