Запросы веб-сервера Apache HTTP - PullRequest
1 голос
/ 20 июня 2009

Когда http-запрос обрабатывается веб-сервером Apache, он обычно разветвляет новый процесс, если не используется что-то вроде fastcgi.

Мой вопрос связан с "одновременными запросами" при использовании fastcgi.

Если я использую fastcgi и у меня есть древовидная структура данных в основной памяти, нужно ли мне беспокоиться о параллельном доступе на чтение / запись к дереву?

Или я могу просто полагаться на то, что запросы обрабатываются в порядке их поступления.

Что если один запрос попытается получить доступ к диску и он заблокируется? Обрабатываются ли другие запросы или они ждут в очереди?

Если я не использую fastcgi, вещи кажутся более ясными, поскольку мне нужно перезагрузить древовидную структуру данных из базы данных, чтобы манипулировать ею, а затем записать ее обратно в базу данных - параллелизма не требуется.

По сути, мне нужно беспокоиться о множественных считывателях / записях в моей структуре данных основной памяти с помощью Apache?

Заранее спасибо.

1 Ответ

0 голосов
/ 20 июня 2009

Когда http-запрос обрабатывается веб-сервером Apache, он обычно разветвляется на новый процесс

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

Если ваше приложение FastCGI является однопоточным, вам не следует беспокоиться о параллелизме, а также если вы запускаете мод-префорк. Но если вы управляете своими структурами данных в общей памяти, вы следует беспокоиться о параллелизме.

...