Thread: Why does analyze_new_cluster.sh use sleep?

Why does analyze_new_cluster.sh use sleep?

From
Peter Eisentraut
Date:
The script analyze_new_cluster.sh output by pg_upgrade contains several
"sleep" calls (see contrib/pg_upgrade/check.c).  What is the point of
this?  If the purpose of this script is to get the database operational
again as soon as possible, waiting a few seconds doing nothing surely
isn't helping.

I could maybe see the point of waiting a bit between the different
vacuumdb calls, to catch some breath, but the one before the first call
to vacuumdb is highly dubious to me.





Re: Why does analyze_new_cluster.sh use sleep?

From
Bruce Momjian
Date:
On Thu, Aug 23, 2012 at 02:17:44AM -0400, Peter Eisentraut wrote:
> The script analyze_new_cluster.sh output by pg_upgrade contains several
> "sleep" calls (see contrib/pg_upgrade/check.c).  What is the point of
> this?  If the purpose of this script is to get the database operational
> again as soon as possible, waiting a few seconds doing nothing surely
> isn't helping.
> 
> I could maybe see the point of waiting a bit between the different
> vacuumdb calls, to catch some breath, but the one before the first call
> to vacuumdb is highly dubious to me.

The sleep is there so the user can read the status message, in case it
scrolls off the screen once the next stage starts.

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + It's impossible for everything to be true. +



Re: Why does analyze_new_cluster.sh use sleep?

From
Peter Eisentraut
Date:
On Thu, 2012-08-23 at 17:05 -0400, Bruce Momjian wrote:
> On Thu, Aug 23, 2012 at 02:17:44AM -0400, Peter Eisentraut wrote:
> > The script analyze_new_cluster.sh output by pg_upgrade contains several
> > "sleep" calls (see contrib/pg_upgrade/check.c).  What is the point of
> > this?  If the purpose of this script is to get the database operational
> > again as soon as possible, waiting a few seconds doing nothing surely
> > isn't helping.
> > 
> > I could maybe see the point of waiting a bit between the different
> > vacuumdb calls, to catch some breath, but the one before the first call
> > to vacuumdb is highly dubious to me.
> 
> The sleep is there so the user can read the status message, in case it
> scrolls off the screen once the next stage starts.

That seems completely arbitrary and contrary to the point of the script.
The pg_upgrade output already explains what the script is for.  If we
really wanted the user to confirm what is going to happen, we should
wait for a key press or something.  I also don't think that 2 seconds is
enough to read and react to the written text.  Also, by that logic, we
need to put a delay between each database processed by vacuumdb as well.





Re: Why does analyze_new_cluster.sh use sleep?

From
Bruce Momjian
Date:
On Thu, Aug 23, 2012 at 11:15:06PM -0400, Peter Eisentraut wrote:
> On Thu, 2012-08-23 at 17:05 -0400, Bruce Momjian wrote:
> > On Thu, Aug 23, 2012 at 02:17:44AM -0400, Peter Eisentraut wrote:
> > > The script analyze_new_cluster.sh output by pg_upgrade contains several
> > > "sleep" calls (see contrib/pg_upgrade/check.c).  What is the point of
> > > this?  If the purpose of this script is to get the database operational
> > > again as soon as possible, waiting a few seconds doing nothing surely
> > > isn't helping.
> > > 
> > > I could maybe see the point of waiting a bit between the different
> > > vacuumdb calls, to catch some breath, but the one before the first call
> > > to vacuumdb is highly dubious to me.
> > 
> > The sleep is there so the user can read the status message, in case it
> > scrolls off the screen once the next stage starts.
> 
> That seems completely arbitrary and contrary to the point of the script.
> The pg_upgrade output already explains what the script is for.  If we
> really wanted the user to confirm what is going to happen, we should
> wait for a key press or something.  I also don't think that 2 seconds is
> enough to read and react to the written text.  Also, by that logic, we
> need to put a delay between each database processed by vacuumdb as well.

Well, the idea is that the script is running stages, and your system is
mostly useful after the first stage is done.  I don't see a keypress as
helping there.  I think this is different from the vacuumdb case.

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + It's impossible for everything to be true. +



Re: Why does analyze_new_cluster.sh use sleep?

From
Peter Eisentraut
Date:
On Fri, 2012-08-24 at 08:19 -0400, Bruce Momjian wrote:
> Well, the idea is that the script is running stages, and your system is
> mostly useful after the first stage is done.  I don't see a keypress as
> helping there.  I think this is different from the vacuumdb case.

Well, this is all debatable, but we certainly don't need the sleep
before the first vacuum, do we?




Re: Why does analyze_new_cluster.sh use sleep?

From
Bruce Momjian
Date:
On Sun, Aug 26, 2012 at 11:12:15PM -0400, Peter Eisentraut wrote:
> On Fri, 2012-08-24 at 08:19 -0400, Bruce Momjian wrote:
> > Well, the idea is that the script is running stages, and your system is
> > mostly useful after the first stage is done.  I don't see a keypress as
> > helping there.  I think this is different from the vacuumdb case.
> 
> Well, this is all debatable, but we certainly don't need the sleep
> before the first vacuum, do we?

That sleep is there so they can react to this line:
   fprintf(script, "echo %sIf you would like default statistics as    quickly as possible, cancel%s\n",

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + It's impossible for everything to be true. +