Передо мной стала интересная задача. Есть демон, этот демон обрабатывает запросы от клиена, по запросу он снимает одновременно статистику со множетсва устройств. Чтобы добиться полной параллельности процессов я каждый из них fork-аю.
Так у меня получается 1 "родитель" и примерно 80 "детей" у этого "родителя". Все "дети" должны записать результаты своего выполнения в мускул в одну таблицу-лог.
Посоветуйте, как мне правильнее организовать подключение к БД?
Я пробую так:
— в "родителе" создаю коннект к мускулу
— устанавливаю семафор занятости этого коннекта
— дальше в "детях" перед обращением к БД в цикле жду, пока освободится ресурс
Проблема в том, что частенько некоторым "детям" не везет и они могут прождать ресурса довольно долго.
В какую сторону копать? 80 соединений к БД делать не катит, т. к. редко, но могут обратиться два и более клиента одновременно... А это уже будет 160 и более коннектов!
Как лучше всего организовать использование одного коннекта к БД сотней клиентов?