170 похожих чатов

Привет. У меня задача есть где мне нужно записывать данные

в базу данных в чайлд процессе. Меня интересует как это корректно делать между основным процессом и дочерним а именно шарить конекшен бд между дочерним и родительским процессом или же создавать новый конекшен под чайлд процесс?

55 ответов

9 просмотров

Подключаться к бд в каждом процессе

ipc в помощь

Alexandra Grigoryeva
ipc в помощь

Что именно ты предлагаешь передавать посредством IPC?

Алексей Попов
Что именно ты предлагаешь передавать посредством I...

Мейн поток пусть управляет пуллом коннектов, а дочерние кидают запросы через ipc в майн поток. Возвращать ответ, думаю, догадаешься как

Dima-Haponov Автор вопроса
Alexandra Grigoryeva
Мейн поток пусть управляет пуллом коннектов, а доч...

Ну с одной стороны меньше открытых подлкючений к базе данных но разве такой подход не создает дополнительные накладные расходы на межпроцессное взаимодействие?

Alexandra Grigoryeva
Мейн поток пусть управляет пуллом коннектов, а доч...

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

Dima Haponov
Ну с одной стороны меньше открытых подлкючений к б...

любая работа с многопотоком в ноже/дено создает кучу условностей

Алексей Попов
То есть ты предлагаешь подключаться к базе только ...

передавая запросы ты не будешь иметь доступ к базе?)

Dima Haponov
Ну с одной стороны меньше открытых подлкючений к б...

Нет никаких проблем с множеством коннектов к бд. Из разных процессов, от разных узлов сети - не важно

Алексей Попов
Нет никаких проблем с множеством коннектов к бд. И...

Нет никаких проблем с множеством коннектов к бд - как раз-таки и есть. В зависимости от базы - обработка, валидация каждого соединения/запроса от соединения является очень дорогим процессом

Alexandra Grigoryeva
передавая запросы ты не будешь иметь доступ к базе...

Ты хочешь передавать в процессы запросы? Поясни, что ты имеешь в виду

Dima-Haponov Автор вопроса
Алексей Попов
Нет никаких проблем с множеством коннектов к бд. И...

Открытие и закрытие соединений с базой данных требует больших вычислительных ресурсов. Например, если вы используете сервер API, вас позаботятся о дополнительной задержке, возникающей при открытии и закрытии соединения с базой данных. Разве не так?

Алексей Попов
Ты хочешь передавать в процессы запросы? Поясни, ч...

возьмем на примере сраный мускл. я по ipc отправляю условный объект с айдишником и запросом и возвращаю по ipc ответ

Alexandra Grigoryeva
Нет никаких проблем с множеством коннектов к бд - ...

Нет никаких проблем Надо устанавливать коннекты при старте процесса, и делать их пул. А не устанавливать новый коннект при каждом запросе

Alexandra Grigoryeva
проблема со стороны базы больше

Какая проблема? Больше конкретики, пожалуйста

Dima-Haponov Автор вопроса

ну а если у тебя 100 чайлдов к примеру

Задача аналогично тому, что надо поднять несколько инстансов приложения, и спрятать за балансером?

Dima Haponov
ну а если у тебя 100 чайлдов к примеру

Зачем тебе 100 чайлдов? Во-первых, возможно тут А В проблема. Опиши, что именно ты решаешь. Может быть твою проблему надо решать с другой стороны Во-вторых, если у тебя "норамльная" СУБД, а не встраиваемая, даже 100 клиентов, у каждого из которых пул коннектов - не проблема

Алексей Попов
Зачем тебе 100 чайлдов? Во-первых, возможно тут А ...

отлично, условно мы работаем по формуле 1 чайлд = 1 коннект. тогда мы упираемся в пропускную способность одного соединения. как решать будем?

Никак. Если база разрешает только одно соединение (мало ли), то придется через сообщения между процессами реализовать "RPC". Если же можно много соединений, то как сказано -- создавать в каждом процессе свое

Алексей Попов
Нет никаких проблем с множеством коннектов к бд. И...

А в постгре уже пофиксили, или всё ещё через pgbouncer рпботают?

Dima-Haponov Автор вопроса
Алексей Попов
Зачем тебе 100 чайлдов? Во-первых, возможно тут А ...

сейчас их 20 но в перспективе когда-то может быть и 100. У меня постгресс

Artem Soroka
А в постгре уже пофиксили, или всё ещё через pgbou...

Если я дам положительный ответ на этот вопрос в контексте текущей компании, в которой я работаю, то я нарушу nda

опять ахинея

Dima-Haponov Автор вопроса

каждый процесс обрабатывает долгие операции чтоб не блокировать основной процесс апишки

Dima Haponov
каждый процесс обрабатывает долгие операции чтоб н...

Это операции с нагрузкой на CPU? Как ты определяешь количество дочерних процессов? На каком железе это работает?

Dima-Haponov Автор вопроса
Алексей Попов
Это операции с нагрузкой на CPU? Как ты определяеш...

ну со всех задача на cpu у меня только одна это сделать беккап и я просто в чайлд экзекаю и все. Остальные больше операции с задержкой связаны то есть получить инфу с апишек каких то и время когда. придет ответ я не знаю

Dima Haponov
ну со всех задача на cpu у меня только одна это сд...

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

Alexandra Grigoryeva
Че, правда? libuv так не думает

Как произносишь libuv?)) По царски и простолюдиному либув?))

Тупая Инфузория
@murzilka17 тебе бросили перчатку

Каникулы начались, что поделать

хорош, ответку кинул, я слит

Alexandra Grigoryeva
хорош, ответку кинул, я слит

Прям мегахорош, учитывая, что ты спалил как домашку на принтере печатаешь))))

Alexandra Grigoryeva
это личный проект

Напомнило «Мам, я не курил, это пацаны попросили подержать»)))

Joe Beretta
Прям мегахорош, учитывая, что ты спалил как домашк...

а, и, это никак не опровергает мои слова

Alexandra Grigoryeva
возьмем на примере сраный мускл. я по ipc отправля...

По-моему какая-то хрень. Не вижу проблемы из любого процесса работать с БД. Беспокоят накладные расходы - так а чего вы хотели чтобы сайт посещаемостью как ютюб мог запускаться на расбери пай? К вашему сообщению идеально подходит пикча где чел ехал себе спокойно на велике и потом сует палку между спецами колес 😁 . Да и потом, вы честно, померили эти накладные расходы то?

Feanorx
?

управлять отдельными соединениями сложнее и затратнее, чем пулом

Alexandra Grigoryeva
управлять отдельными соединениями сложнее и затрат...

Есть предложение как сделать пул общим для многих процессов?

Feanorx
Есть предложение как сделать пул общим для многих ...

если отказаться от ноды не варик...тогда писать новые модули на cpp

То есть, никак. Так, и в чём была ахинея?

Feanorx
То есть, никак. Так, и в чём была ахинея?

в том, что создание отдельного коннекта к базе сделает только хуже

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
короче сгенерила мне эта штука код на ассемблере: struc string val { common local .value dq .value .value: if ~val eq db val end if db 0 } fo...
Vi Chapmann Chapmann
12
Всем привет! Массив вводится с клавиатуры, кол-во элементов неизвестно, поэтому я указал arr db 100 dup(?) С нахождением максимума проблем нет, а вот минимум почему-то всегд...
En Vind Av Sorg
11
Помогите, пожалуйста, делаю программу для для подсчёта корней квадратного уравнения, знаю, что есть куча недочётов, недоработок, но основная проблема в том, что почему-то при ...
NYC
13
#include <stdio.h> int main(void) { int n; scanf("%d", &n); int digits1[n] = {0}; int digits2[n] = {0}; я не могу таким образом заранее массив нулями заполнить?
Linus
12
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
я про форму записи. смысл указывать что 8 байтный регистр 8 байт?
Aiwan \ (•◡•) / _bot
10
Вроде бы вопрос уже заезжанный, но тем не менее У меня есть функция menu() которая выводит набор возможных действий, а затем спрашивает у пользователя что он хотел бы сделать....
David Golovatin
3
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
14
Карта сайта