Re: Sleep functions

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Robert Treat <xzilla(at)users(dot)sourceforge(dot)net>
Cc: John DeSoi <desoi(at)pgedit(dot)com>, Michael Fuhr <mike(at)fuhr(dot)org>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Sleep functions
Date: 2005-08-22 15:53:22
Message-ID: 16361.1124726002@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Robert Treat <xzilla(at)users(dot)sourceforge(dot)net> writes:
>> On Aug 22, 2005, at 12:40 AM, Michael Fuhr wrote:
>>> To others who've written their own sleep() function: what are you
>>> using it for?

> I know I've used one for a script that reindexes various tables on an
> old 7.3 server. I put a sleep of 20 seconds between reindexes to let
> built up transactions have a few moments to catch up, thereby smoothing
> out i/o. For a long time I used a cpu hogging plpgsql version (since I
> had cpu to spare) until I switched to a better pltcl version. If a
> server side one existed I would certainly have used that.

Tell you the truth, this "use case" qualifies as a poster child for my
concern that a server-side sleep would encourage people to write code
that sits on locks. If you'd coded some kind of plpgsql loop that did
a REINDEX, sleep N seconds, another REINDEX, etc, you'd have been
sitting on the exclusive lock for each table until the end of the whole
transaction. Your approach makes lots of sense if you commit each
REINDEX transaction and sleep *outside* the transaction --- but a server
sleep function would do exactly not that.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Hannu Krosing 2005-08-22 15:55:31 Re: Missing CONCURRENT VACUUM (Was: Release notes for
Previous Message Greg Sabino Mullane 2005-08-22 14:58:42 Re: Sleep functions