>>>>> On Wed, 12 May 1999 12:01:51 +0300 (IDT), "Stanislav Malyshev a.k.a
>Frodo" <frodo@sharat.co.il> said:
VBW> изменения, после чего байт-код живет внутри той копии HTTPD, которая его
VBW> выполнила, и
VBW> при следующем запуске overhead отсутствует. Зато растет расход памяти.
SMakaF> Кстати, вопрос - "той копии" это значит, что у каждого подпроцесса свой
SMakaF> Registry?
Не понял вопроса. Попробую ответить. Там для каждой копии httpd
создается свой namespace и все данные погружаются в этот namespace, и
живут в каждой копии httpd отдельно. Так что штатными средствами фигня с
тем, что http - stateless, не обходится. Скрипт тоже компилируется в
каждый httpd отдельно, и если он _подгружает_ какие-то модули, то и
они. Ключевое слово "подгружает". Если грузить модуль при запуске
apache, то копия будет одна. И данных тоже. Но как я подозреваю, могут
появиться нежелательные побочные эффекты. Вообще использование mod_perl
требует аккуратности, а такое - особенно.
VBW> Кроме того, если скрипт работает с базой данных, коннект к
VBW> БД кешируется
VBW> и экономится время на соединение при следующем запуске. Правда
VBW> соединений к БД будет m*n где m число копий httpd а n - число разных
VBW> коннектов к БД которые бывают
Опять же, загрузкой модуля при старте apache это вроде бы можно
вылечить. Но недаром Apache::DBI этого не делает...
SMakaF> Т.е. создать, скажем, query, и воспользоваться его результатами на
SMakaF> следующем запросе (постраничный просмотр) нельзя? А как можно?
Как обычно с http. Поскольку он stateless, и никакой гарантии, что ты
попадешь к тому же демону, нет, увы. Хотя в одном и том же переменные
сохраняются, что позволяет, например, сделать авторизацию по принципу
"авторизационный скрипт открывает коннект, а выдающий данные использует
хендл этого коннекта". Насколько я понимаю, Витус Вагнер этим нагло
пользуется еще и в варианте с SSI, поскольку в процессе выдачи одного
документа все SSI-директивы выполняются в одном httpd.
--
Artem Chuprina E-mail: ran@pirit.com
Network Administrator FIDO: 2:5020/371.32
PIRIT Corp. Phone: +7(095) 115-7101
=============================================================================
= Apache-Talk@lists.lexa.ru mailing list =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =