Thread: Auto-timeout on all queries

Auto-timeout on all queries

From
Bruce Momjian
Date:
> I would like to make one small request for future releases.  Is there a
> setup parameter that could be enabled that would put a timeout for a query
> that runs too long or endangers the integrity of the system?  With the
> systems that I use, there are times that queries are entered that contain
> errors or run so long that they eventually cause a system crash.  It would
> be most helpful if a timeout limit on queries could be enabled that would
> stop a query after so much time and release the resources back to the system.

Does anyone thing this would be a nice feature?  We can easily do it
with alarm()/elog(), but I want to know if it would be valuable.

--
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Re: [GENERAL] Auto-timeout on all queries

From
Vadim Mikheev
Date:
Bruce Momjian wrote:
>
> > I would like to make one small request for future releases.  Is there a
> > setup parameter that could be enabled that would put a timeout for a query
> > that runs too long or endangers the integrity of the system?  With the
> > systems that I use, there are times that queries are entered that contain
> > errors or run so long that they eventually cause a system crash.  It would
> > be most helpful if a timeout limit on queries could be enabled that would
> > stop a query after so much time and release the resources back to the system.
>
> Does anyone thing this would be a nice feature?  We can easily do it
> with alarm()/elog(), but I want to know if it would be valuable.

Not so easy - we use SIGALRM in locking...

But why not just use CANCEL to stop too long running queries?

Vadim

Re: [GENERAL] Auto-timeout on all queries

From
Bruce Momjian
Date:
> Bruce Momjian wrote:
> >
> > > I would like to make one small request for future releases.  Is there a
> > > setup parameter that could be enabled that would put a timeout for a query
> > > that runs too long or endangers the integrity of the system?  With the
> > > systems that I use, there are times that queries are entered that contain
> > > errors or run so long that they eventually cause a system crash.  It would
> > > be most helpful if a timeout limit on queries could be enabled that would
> > > stop a query after so much time and release the resources back to the system.
> >
> > Does anyone thing this would be a nice feature?  We can easily do it
> > with alarm()/elog(), but I want to know if it would be valuable.
>
> Not so easy - we use SIGALRM in locking...

Oh.  :-)  I forgot.

>
> But why not just use CANCEL to stop too long running queries?

Good question.

--
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Re: [GENERAL] Auto-timeout on all queries

From
Karl DeBisschop
Date:
>   From: Bruce Momjian <maillist@candle.pha.pa.us>
>   Date: Mon, 5 Jul 1999 21:19:54 -0400 (EDT)
>   CC: PostgreSQL-general <pgsql-general@postgreSQL.org>
>   Content-Type: text/plain; charset=US-ASCII
>   Sender: owner-pgsql-general@postgreSQL.org
>   Precedence: bulk
>
>   > I would like to make one small request for future releases.  Is there a
>   > setup parameter that could be enabled that would put a timeout for a query
>   > that runs too long or endangers the integrity of the system?  With the
>   > systems that I use, there are times that queries are entered that contain
>   > errors or run so long that they eventually cause a system crash.  It would
>   > be most helpful if a timeout limit on queries could be enabled that would
>   > stop a query after so much time and release the resources back to the system.
>
>   Does anyone thing this would be a nice feature?  We can easily do it
>   with alarm()/elog(), but I want to know if it would be valuable.
>
>   --
>     Bruce Momjian                        |  http://www.op.net/~candle
>     maillist@candle.pha.pa.us            |  (610) 853-3000
>     +  If your life is a hard drive,     |  830 Blythe Avenue
>     +  Christ can be your backup.        |  Drexel Hill, Pennsylvania
>     19026

I think we'd use it.  At least on our development machines, which have
occasionally suffered from the ill effects of an excessively ambitious
query.

How would the interface to the user look?

--
Karl DeBisschop <kdebisschop@spaceheater.infoplease.com>
617.832.0332 (Fax: 617.956.2696)

Information Please - your source for FREE online reference
http://www.infoplease.com  - Your Ultimate Fact Finder
http://kids.infoplease.com - The Great Homework Helper

Re: [GENERAL] Auto-timeout on all queries

From
Bruce Momjian
Date:
> >   > I would like to make one small request for future releases.  Is there a
> >   > setup parameter that could be enabled that would put a timeout for a query
> >   > that runs too long or endangers the integrity of the system?  With the
> >   > systems that I use, there are times that queries are entered that contain
> >   > errors or run so long that they eventually cause a system crash.  It would
> >   > be most helpful if a timeout limit on queries could be enabled that would
> >   > stop a query after so much time and release the resources back to the system.
> >
> >   Does anyone thing this would be a nice feature?  We can easily do it
> >   with alarm()/elog(), but I want to know if it would be valuable.
> >
> >   --
> >     Bruce Momjian                        |  http://www.op.net/~candle
> >     maillist@candle.pha.pa.us            |  (610) 853-3000
> >     +  If your life is a hard drive,     |  830 Blythe Avenue
> >     +  Christ can be your backup.        |  Drexel Hill, Pennsylvania
> >     19026
>
> I think we'd use it.  At least on our development machines, which have
> occasionally suffered from the ill effects of an excessively ambitious
> query.
>
> How would the interface to the user look?

I assume it would be a new 'SET' option, like "SET TIMEOUT=60", but we
already use alarm() for something else, so it may be more difficult than
I thought.  Not sure.

--
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Re: [GENERAL] Auto-timeout on all queries

From
Peter Eisentraut
Date:
On Mon, 5 Jul 1999, Bruce Momjian wrote:

> > I would like to make one small request for future releases.  Is there a
> > setup parameter that could be enabled that would put a timeout for a query
> > that runs too long or endangers the integrity of the system?  With the
> > systems that I use, there are times that queries are entered that contain
> > errors or run so long that they eventually cause a system crash.  It would
> > be most helpful if a timeout limit on queries could be enabled that would
> > stop a query after so much time and release the resources back to the system.
>
> Does anyone thing this would be a nice feature?  We can easily do it
> with alarm()/elog(), but I want to know if it would be valuable.

Oh yeah!

Time out in minutes, "time" out in tuples, all with an instructive error
message if exceeded. How about

SET TIMEOUT '5 min';
SET TUPLE LIMIT 10000;

If you can really "easily" do it, I say go for it.

--
Peter Eisentraut
PathWay Computing, Inc.