Как стать автором
Обновить

Комментарии 19

с картинками вроде беда
В вашем идеальном мире существует только 1 сервер postgresql? Как мне к двум подключиться? И где фейловер?
Зачем усложнять драйвер и давать ему на обработку такую непростую логику? Это, наверняка, будет медленнее. Есть pgpool2 и прочее.
Два сервера с разными данными — сложная логика? В статье написано «быстрый драйвер с возможностью failover’а», при чём тут pgpool?
А если серверов будет больше двух в вашей схеме?)

Два сервера с одинаковыми данными — это уже сложная логика. Если еще и данные разные, то все еще хуже. Ну это не задача драйвера такие проблемы решать, тем более если есть претензии на «быстроту».

Pgpool при том, что эти проблемы он легко решает
— пул соединений и балансировка
— почти настоящий failover
— in-memory query cache в качестве приятного бонуса ))
> А если серверов будет больше двух в вашей схеме?)

В моей схеме? Я никакую схему не показывал вроде бы.

> Ну это не задача драйвера такие проблемы решать, тем более если есть претензии на «быстроту».

Не задача драйвера уметь соединения к нескольким серверам в пределах одного процесса? Ок-ок.

> Pgpool при том, что эти проблемы он легко решает

В статье ни слова про pgpool. Статья про драйвер. В статье написано, что есть фейловер, я его не увидел. Pgpool не при чём.
Что вы подразумеваете под «идеальным» миром?
Мир, где все данные можно получить из одного сервера postresql. Или всё же ваш драйвер умеет несколько серверов в одном процессе?
Нет, наш драйвер работает только с одним сервером. Прошу заметить, мы нигде не указывали то что драйвер универсальный и т.п. Нам понадобился драйвер работающий быстро с одной базой и мы его написали. Если вам необходимо решение работающие с несколькими базами, то делайте pull request, будем только рады.
Не очень понятно. Если у меня в середине транзакции отвалится коннект, что сделает ваш драйвер? Или пострес позволяет подключиться к существующей транзакции?

Вообще этот момент с автоматическим переподключением вызывает много вопросов, и самый главный — зачем это надо? В остальном здорово, хотя лично я не люблю излишнюю фрагментацию и предпочел бы видеть вашу работу в виде патчей к текущему стандартному (де факто) драйверу.
В данный момент наш драйвер не поддерживает транзакции.
По-моему, node.js слабо подходящая технология для активной работы с базой данных.
Да нормальная это технология. Чем по вашему nodejs приложения дергающее sql базу асинхронно будет отличаться от дергающего mongo асинхронно? Правильно ни чем.
Это абсолютно беспочвенные домыслы, что для node.js sql базы не подходят, а надо обязательно юзать одно из 100500 nosql решений (и типо все сразу станет по феншую).

PS. Я использую сам и sql и mongo в разных проектах.
Получается асинхронное дерганье подходит практически для любых баз. Ну, а если база будет графориентированная, то я думаю тоже ничего не изменится?
Да, все зависит только от реализации драйвера/клиента.
Умеет ли драйвер выдавать ответ с несколькими rowset-ами?
Например из процедуры…

или если выполнить одним запросом
select * from test1; select * from test2;

Точно не знаю, но почти уверен, что ответ нет. Вы знаете способ чтобы из функции получить два курсора?
Нет, в результат вернется только последний.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.