Re: running maintenance tasks on DB
От | Neil Conway |
---|---|
Тема | Re: running maintenance tasks on DB |
Дата | |
Msg-id | 20000923145627.A5230@klamath.dyndns.org обсуждение исходный текст |
Ответ на | Re: running maintenance tasks on DB (Louis-David Mitterrand <cunctator@apartia.ch>) |
Список | pgsql-general |
On Sat, Sep 23, 2000 at 07:34:31PM +0200, Louis-David Mitterrand wrote: > On Sat, Sep 23, 2000 at 12:45:02PM -0400, Neil Conway wrote: > > I don't believe you can get backend functions to run at certain > > times, without using a mechanism like cron to connect to the DB and > > run them. > > It would be really great to have that functionality in the backend, Yes, this might come in handy. > > A mod_perl handler is a totally different matter. That's for doing > > stuff with HTTP requests - isn't this unrelated? > > Indeed I wasn't making much sense talking of mod_perl handlers to > perform DB maintenance :) The reason I came to thinking about them is > because cron jobs appear as less elegant and integrated with the whole > application, they appear as external crutch filling a missing DB > functionality (running scheduled tasks). > > Ideally I'd like the auction application to only rely on its two main > components: Postgres and mod_perl/Apache. The mod_perl idea was to > install the maintenance script as a ChildInitHandler which is not > directly related to content generation. Is that totally harebrained? Well, (AFAIK) the ChildInitHandler is called every time Apache spawns a new process. This could be *really* bad - for instance, someone starts up Apache w/ your app (lets say @ ebay.com :D). Because your action software is so good, they get ~50 hits per second, so Apache starts spawning children like crazy. Now you have hundreds of Apache children waiting for you to finish DB maintainence. And the DB is getting hammered doing this DB maintainence, and isn't processing any real requests. And you don't really have any control over how often Apache spawns new children. It could theoretically go for days without spawning any new children (for example, if it's serving MaxClients requests all the time). I'd recommend sticking with cron :-) Cron is on every UNIX I've ever used, so it's unlikely an admin will need to install anything beyond Postgres + mod_perl/Apache. If you build the maintainence scripts out of the same components as the rest of the app (Perl, DBI, DBD::Pg, etc), it shouldn't be too bad. HTH, Neil -- Neil Conway <neilconway@home.com> Get my GnuPG key from: http://klamath.dyndns.org/mykey.asc Encrypted mail welcomed Don't worry about people stealing your ideas. If your ideas are any good, you'll have to ram them down people's throats. -- Howard Aiken
Вложения
В списке pgsql-general по дате отправления: