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

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

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

55 ответов

23 просмотра

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

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?)) По царски и простолюдиному либув?))

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

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

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

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

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

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

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

Feanorx
?

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

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

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

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

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

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

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

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

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

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

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Всем привет! Кто пользуется DevExpress, подскажите пожалуйста, реализован ли в TcxGrid в новых версиях поиск по датам как в Экселе (ну т.е. не просто список чекбоксов со значе...
A Z
4
Карта сайта