Re: Can statement_timeout emulated NOWAIT?

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Luis P Caamano <lcaamano(at)mindspring(dot)com>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: Can statement_timeout emulated NOWAIT?
Date: 2004-03-16 15:56:54
Message-ID: 200403161556.i2GFusW22068@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql


Yes, I think these are all correct, except I am not positive FOR UPDATE
NOWAIT will be in 7.5 unless someone codes it.

---------------------------------------------------------------------------

Luis P Caamano wrote:
>
> I've researched the recent discussions about statement_timeout
> and NOWAIT and I'd like to confirm my understanding of the
> situation before acting on it. Please let me know if the
> following statements are true:
>
> - LOCK TABLE ... NOWAIT has been checked in and will be available
> in 7.5
>
> - SELECT ... FOR UPDATE NOWAIT is in the TODO list (among other
> NOWAIT commands) but it will also be available in 7.5
>
> - Using "SET LOCAL statement_timeout=xxx" can be used before
> "SELECT ... FOR UPDATE" to emulate NOWAIT when the select
> is simple and involves a relatively small number of rows.
> That is, the following:
>
> BEGIN;
> SET LOCAL statement_timeout=3000;
> SELECT ... FOR UPDATE; -- (1 row)
> COMMIT;
>
> will be equivalent to:
>
> BEGIN;
> SELECT ... FOR UPDATE NOWAIT;
> COMMIT;
>
> - The NOWAIT feature will be able to handle select-for-updates
> that involve many rows better than statement_timeout because
> it will track timeouts on a row by row basis, which eliminates
> false positives. That is, if the statement_timeout is too
> short for the select, it might fail before finishing the select
> instead of failing because of locked row.
>
> - The error raised by statement_timeout and NOWAIT will be the
> same.
>
> Basically, I'd like to write low level code that implements
> NOWAIT in the application using statement_timeout. Later on,
> 7.5, I'd be able to reimplement the low level functions using
> NOWAIT without having to change the higher level code.
>
> Your thoughts and comments are appreciated.
>
> Thanks
>
> Luis P Caamano
> Atlanta, GA, USA
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 7: don't forget to increase your free space map settings
>

--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Jeff Eckermann 2004-03-16 16:13:57 Re: Import from Ms Excel
Previous Message Tom Lane 2004-03-16 15:48:26 Re: Can statement_timeout emulated NOWAIT?