Hi,

> we're looking for a way to offer version handling to our serverside perl
> app.

You'll find many discussions of this in the mailing archive with
multiple options.

> My first ideas goes as:
>
> <Location /myApp-v2.0.0/>
>        PerlSwitches -I /some/path/v2.0.0/
>        PerlResponseHandler run
> </Location>
>
> <Location /myApp-v2.0.1/>
>        PerlSwitches -I /some/path/v2.0.1/
>        PerlResponseHandler run
> </Location>

That won't work.  Those use the same perl interpreter and it can't
load multiple versions of the same module.

> Alt. solutions are rename each package to be version unique.

That will work.

You can also run separate mod_perl backends, or you can create
additional interpreters with this:
http://perl.apache.org/docs/2.0/user/config/config.html#C_Parent_

Keep in mind, that will make your processes grow considerably.

> * we use worker mpm for memory sharing.

What do you mean by memory sharing?  Shared variables?  FYI, worker
normally uses more memory than prefork on unix systems because of
copy-on-write.

> * 100+ versions of the app is quite likely to exist before dropping the
> backend.
> will make it 100x the initial apps memory. Could this be an apache
> performance issue?

It will certainly use a lot of RAM, so make sure you have it.

> * to lanch a new version i prefer to not alter the apache config constantly
> is there a way to make this dynamically?

There's all kind of conf manipulation stuff in mod_perl.  I don't use
any of it, so I'll leave that to someone else.  I prefer to use
templates to generate the conf files, so they're easier to see and
debug.

- Perrin

Reply via email to